2012-01-27 16 views
5

Bu basit bir soru olabilir, ancak henüz doğrudan bir yanıt görmedim. Uzun süren bir görev yapmak için Azure çalışan bir rol kullandığımı varsayalım, bir saat süren bir şey söyle. Artık MS'in, işçi rolünün üzerinde bir miktar bakım yapılması gerektiğine karar verdiğini ve çalışmaya 30 dakika kala kapatmaya karar verdiğini söyleyin.Azure'un İşlenirken İşçiyi Durdurmasını Önleme

Azure bakım yapmak için bu rol tamamlanana kadar Azure'un yapılmasını sağlamanın bir yolu var mı? OnStop yöntemini görüyorum, ancak yine de kapatılmadan önce belirli bir süre için işleri geciktirebilirsiniz.

Bu mümkün değilse, iyi bir zaman harcayan ve daha küçük parçalara bölünemeyen işlemler için bunu nasıl planlıyorsunuz? Daha önce yaptığınız değişiklikleri geri alır ve ardından görevi yeniden dener misiniz?

cevap

4

Örnek kapatma işlemini geciktirmek için (zarif kapatma modunda) Stopping olayını kullanabilirsiniz. Bir kilitlenme durumunda, kapanmayı gerçekten engelleyemezsiniz ...

İşte azaltma önerisi. Görevinizin sıraya bağlı olduğunu varsayalım. Mesajınızın PROCESSWIDGET|123 gibi bir şey olduğunu varsayalım.

Bir çalışan örneğinde sıra mesajını okuyup işlemeye başlarsınız. Sıra mesajını yol boyunca değiştirebilir ve ilerlemenizi kaydedebilirsiniz. Öyleyse, bu hayali örnekte, her biri 15 dakika süren, saat başı görevini tamamlamak için 4 adım olduğunu varsayalım. Her adım tamamlandığında, kontrol noktasını ekleyerek mesajınızı güncelleyebilirsiniz. İlk görevi tamamladıktan hemen sonra mesajı güncellersiniz ve şimdi PROCESSWIDGET|123|STEP2 gibi bir şey göreceksiniz.

Artık bir şeyler ters gidiyor ve VM örneği bir nedenden ötürü ölüyor. Sıradaki ileti sonunda tekrar görünür hale gelir, başka bir çalışan örneği bunu okur ve iletinin gerçekleştirilmesi için bir sonraki adıma eklediğini görür. Ortadaki dosyaları Blob deposunda (veya başka bir kalıcı depoda) sakladığınızı varsayarak, bıraktığınız yerden devam edebilirsiniz ve baştan yeniden işlem yapamazsınız.

UpdateMessage() yönteminin ayrıntıları için bkz. this MSDN page.

+0

Ayrıca, sadece FYI - Kapatma işlemini yalnızca 5 dakika geciktirebilirsiniz. Sonra, sadece kapanacak. David'in dediği gibi, bu sadece zarif çıkışlar içindir. – dunnry

+0

Evet, kazalar hakkında çok fazla endişelenmiyorum. Bu sadece düzenli bakım. Bu işlerden biri, her gece 10 milyon kayıt metin dosyası almak zorunda kalacak. Microsoft, bu süreçte güncellemeler için örneğimi kapatmamayı tercih ediyorum çünkü biraz zaman alacak. Hat numarasını takip edebilirim ve sadece o noktada başlayabilirim. –

+1

Bu içe aktarmayı parralel olarak çalışabilen gruplar halinde kırmak mümkün mü? – BrentDaCodeMonkey