1

J'ai consulté la documentation de WebJobs, Fonctions et applications logiques dans Azure, mais je ne trouve pas de moyen de planifier une exécution ponctuelle d'un processus via le code. Mes utilisateurs doivent être en mesure de programmer des notifications pour sortir à une heure spécifique dans le futur (généralement dans quelques heures ou un jour d'être programmé). Tout ce que je lis sur ces processus utilise des expressions CRON qui ne sont pas conçues pour des exécutions uniques. Je me rends compte que je pourrais planifier le travail à exécuter sur des intervalles et vérifier la base de données pour voir si le reste du travail doit fonctionner, mais je voudrais éviter d'exécuter les travaux inutilement si possible. Toute aide est appréciée. Si cela est pertinent, j'utilise C#, ASP.NET MVC Core, App Services et une base de données SQL tous hébergés dans Azure. Mon plan était d'utiliser les applications Logic pour vérifier la présence d'un événement planifié dans la base de données et envoyer des notifications via les notifications push Twilio, SendGrid et iOS/Android.Programmer l'exécution ponctuelle de la fonction Azure

+0

Pourquoi ne pas utiliser des applications logiques pour déclencher un déclencheur Http fonction? – M0rty

Répondre

1

Vous pouvez utiliser Azure Automation pour planifier des tâches par programmation à l'aide de l'API REST. En savoir plus here.

Vous pouvez également utiliser Azure Event Grid. Sur la base de this article, vous pouvez « Prolonger les flux de travail existants en déclenchant une application logique une fois qu'il ya un nouvel enregistrement dans la base de données ».

Hope this helps.

0

Vous pouvez utiliser déclencheur Azure Queue avec visibilité différée. cela permet de garder le message invisible pour une durée d'expiration. Il agit commodément comme une minuterie.

CloudQueue queueOutput; // same queue as trigger listens on 
var strjson = JsonConvert.SerializeObject(message); // message is your payload 
var cloudMsg = new CloudQueueMessage(strjson); 

var delay = TimeSpan.FromHours(1); 
queueOutput.AddMessage(cloudMsg, initialVisibilityDelay: delay); 

Voir https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.queue.cloudqueue.addmessage?view=azurestorage-8.1.3 pour plus de détails sur cette surcharge de AddMessage.

0

Une option consiste à créer des messages Azure Service Bus dans votre application à l'aide de la propriété ScheduledEnqueueTimeUtc. Cela créera le message dans la file d'attente, mais sera seulement consommable à ce moment-là. Ensuite, une application logique peut écouter cette file d'attente de bus de service et effectuer le traitement supplémentaire, par ex. SendGrid, Twilio, etc ...

HTH