2015-12-03 14 views
5

Bir Azure webjob yapıp yapamayacağınızı ve 1 dakika başına bir kez gibi programlanıp davranamayacağını ve bir kuyruk tarafından tetiklenebildiğini anlamaya çalışıyorum. Her ikisini de ayrı ayrı yaptım ama bir işte birleştirilmemiştim.Azure webjob; Zamanlanmış yürütme de sıraya göre tetikleniyor

Bir kuyrukta onları tetiklemek için, tetikleyiciyi yakalayan yöntemlerle JobHost ve Functions sınıfını kullanmam gerektiğini biliyorum. Hala bu zamanlayıcıyı engeller ve yalnızca tetikleyicileri

İş Denetimini atladığım zaman iyi olur. Eminim ki bir çelişki isterim ve sadece iki ayrı iş yapmak zorundayım ama belki biriniz aynı şeylerle yüzleşti ve bunu başarmayı başardınız.

cevap

4

Zaten SDK'yı kullandığınız için Azure Zamanlayıcısı/Zamanlanmış İşleri kullanmazdım. Yeni TimerTrigger'u kullanabilirsiniz.

Muhtemelen yapmam gereken iki işlevi vardır. İlk işlev, QueueTrigger işlevini kullanan diğeri v1.1.0 sürümünde yayınlanan yeni TimerTrigger WebJobs işlevini kullanmaktır. Burada benzer bir şey yaptığım bir örneği görebilirsiniz:

Bir RSS akışını sorgulayan ve Kuyruk iletilerini düşüren bir zamanlamacı var ancak Kuyruk iletilerini başka bir uygulamadan da bırakabilirim. senaryomda bir WebHook kullan.

Zamanlayıcı Tetik Dokümanlar: https://github.com/Azure/azure-webjobs-sdk-extensions#timertrigger

Örnek:

// Triggers every minute (every time the clock looks like 00:xx:xx) 
public static void CronJob([TimerTrigger("0 * * * * *")] TimerInfo timer, [Queue("Foo")] out string message) 
{ 
    Console.WriteLine("Cron job fired!"); 
    message = "Hello world!"; 
} 

public static void QueueJob([QueueTrigger("Foo")] string message) 
{ 
    Console.WriteLine(message); 
} 
+0

config.UseTimers(); artık yok gibi görünüyor – TWilly

+1

Yapıyor. Paketin içinde çekmeyin veya uygun referansı eklemiyor olabilirsiniz. Belki bunu anlayamazsan, kod örneği olan yeni bir gönderi mi? –

+1

Bu, Microsoft.Azure.WebJobs.Extensions NuGet paketinde değil temel WebJobs –

İlgili konular