2010-07-14 13 views
6

Paylaşılan barınağa girdim ve windows scheduler kullanmama izin vermiyorlar ... Yani zamanlanmış görevleri gerçekleştirmenin yolları nelerdir (zamanlanmış posta) asp.net ... Sadece Jeff Atwood blog tarafından background process gördüm ... Bu relable mı? Ya da zamanlanmış görevleri gerçekleştirmenin diğer yolları ...Asp.net içinde görev zamanlama görevleri (windows scheduler yazmadan)

Daha sonra quartz.net buldum ama bir Quartz.net sunucusunu bağımsız olarak yüklemeksizin quartz.net'i bir asp.net () içine yerleştiren basit bir örnek bulamıyorum windows hizmet) ... quartz.net üzerindeki herhangi bir öneri ...

+3

http://stackoverflow.com/questions/3243400/how-to-do-background-processing-similar- to-that-on-stackoverflow ... aynı soruyu burada sordunuz ... – RameshVel

+0

bu sizin diğer sorunuzun bir kopyası değil mi? –

+0

Sonunda bunun için hangi çözümü geldi?Ben aynı gereksinimi var, ama sorun, Uygulama havuzu yeniden başlatıldığında Quartz.net çalışmayı durdur :( –

cevap

1

Aynı şeyi elde etmek için Microsoft.Web.Administration assembly Schedule Class'u araştırıyordum ancak sınıfın yalnızca IIS çalışan işleminin yeniden başlatılmasını planlamak için kullanılabileceği görülüyor, işte example of creating app pools and setting periodical restart.

Bu nedenle, ASP.NET uygulamasının yeniden başlatılmasıyla ve daha sonra Application_Start'ta programlanmış çalışmayı yapmak için tek yol programlamaktı. Ama bu çirkin hack değil çözüm, bu yüzden ben zaten web sunucusu üzerinde çalışan homegrown yedekleme windows hizmeti için programlama yetenekleri ekleyerek sona erdi, bu yüzden IMO Quartz.net sizin için en iyi çözümdür. Belki de web sağlayıcınızı Quartz.net'i kurmaya ikna edebilirsiniz. Diğer tüm çözümler, size daha fazla ya da daha az sorun çıkaracak bir hack gibi görünüyor.

0
+0

-1 Bu bir ASP.NET işleminde barındırılacak nasıl olur? –

+0

bu size yardımcı olabilir: http: // www. codeproject.com/KB/dotnet/ABTransClockArticle.aspx?msg=1990168#xx1990168xx veya güncelleme bağlantısını kontrol edin 2 –

+0

Pandya'ya yardım etmeyecek .. Windows Zamanlayıcı'yı çalıştırmanıza izin vermeyen bir kişi, Windows Services'i ayrı ayrı onaylayamaz. –

3

Sen ebil istemek d görevinizi gerçekleştiren bir ASP.Net sayfası yazın, ör. postaları yollamak. Ardından, bir programda sunucunuzdaki sayfanın URL'sini aramak için SetCronJob gibi bir çevrimiçi planlama hizmetini kullanın.

Bu çok basit yaklaşımın olumsuz tarafı, harici bir hizmete bağımlı olmanızdır.

+0

it ... Benim uygulama zamanlanmış posta kavramı dayanmaktadır ... –

+0

Mükemmel! Tam olarak ihtiyacım olan, en kötü durum senaryosu Makinemden yedek olarak çalışan bazı basit şeyler yaratacağım. – mhenrixon

0

this'dan fikir edinebilir ve görevinizi KeepAlive yöntemine yazabilirsiniz. Umut! Yardımcı olur.

0

Çok uzun zaman önce aynı problemi yaşadım ve bir üçüncü taraf hizmetini kullanmama kısacası, bunun için harika bir yol yok.

Bu, .NET Uygulama Önbelleği nesnesini 24 saatlik bir süre ile kullandım.

Cache["DailyTask"] = true; 

Sonra taban sayfa sınıfta, her bir sayfa isteği O değişkenin mevcut olup olmadığı kontrol ve mevcut, ben görevi koştu yapıldı. Bunun dezavantajı, daha sonra, uygulamanıza yapılan sayfa talepleri konusunda size güvenmenizdir.

Son olarak, bunu yaptığımı gördüğüm başka bir yöntem, önbellek geçerlilik süresinde (CacheItemRemovedCallback yöntemi) bir geri arama ayarlamak ve daha sonra bir geri çağırmaya sahip olan ve böylece döngü yinelenen önbelleğe yeni bir öğe eklemek için bu yöntemi zincirlemektir .

İlgili konular