如何在共享主機服務器上的配置計劃時間內執行各種任務(例如電子郵件警報/發送新聞函)?沒有購買專用服務器的ASP.NET網站中的計劃作業
3
A
回答
10
下面是我用來做這種過去事情Global.ascx.cs文件,使用緩存到期觸發計劃任務:
public class Global : HttpApplication
{
private const string CACHE_ENTRY_KEY = "ServiceMimicCacheEntry";
private const string CACHE_KEY = "ServiceMimicCache";
private void Application_Start(object sender, EventArgs e)
{
Application[CACHE_KEY] = HttpContext.Current.Cache;
RegisterCacheEntry();
}
private void RegisterCacheEntry()
{
Cache cache = (Cache)Application[CACHE_KEY];
if (cache[CACHE_ENTRY_KEY] != null) return;
cache.Add(CACHE_ENTRY_KEY, CACHE_ENTRY_KEY, null,
DateTime.MaxValue, TimeSpan.FromSeconds(120), CacheItemPriority.Normal,
new CacheItemRemovedCallback(CacheItemRemoved));
}
private void SpawnServiceActions()
{
ThreadStart threadStart = new ThreadStart(DoServiceActions);
Thread thread = new Thread(threadStart);
thread.Start();
}
private void DoServiceActions()
{
// do your scheduled stuff
}
private void CacheItemRemoved(string key, object value, CacheItemRemovedReason reason)
{
SpawnServiceActions();
RegisterCacheEntry();
}
}
目前,這觸發了你每2分鐘執行一次動作,但這可以在代碼中進行配置。
0
這裏的Somone是通過在global.asax中創建線程來做到這一點的。聽起來像是他們取得了成功。我從未測試過這種方法。
這在我看來是一個更好的選擇,然後重載緩存過期機制。
0
您可以在共享主機上使用ATrigger調度服務,沒有任何問題。 A .Net library也可用於創建計劃任務,無需開銷。
聲明:我是ATrigger團隊中的一員。這是一個免費軟件,我沒有任何商業目的。
相關問題
- 1. 計劃作業R和SQL服務器
- 2. SQL服務器作業動態計劃
- 3. 設計專業網站
- 4. SQL服務器代理作業計劃中的事務
- 5. 專業網站
- 6. 專業網站製作
- 7. 無法購買共享服務計劃的Azure域
- 8. 計劃的作業沒有推出
- 9. Ubuntu服務器中的計劃順序作業
- 10. 將網站從專用服務器移動到雲服務器
- 11. 後的網站複製到本地服務器,「買入」,「一個鍵購買」按鈕不起作用
- 12. 從cPanel服務器遷移到沒有服務器的網站?
- 13. Azure網站 - 計劃任務
- 14. 應用內購買服務器型號
- 15. 基於應用內購買的專業帳戶升級
- 16. 使用Razor構建的專業網站
- 17. 類似FTP服務器的asp.net網站
- 18. Joomla網站沒有根服務器
- 19. 專用服務器沒有空間
- 20. 我的應用程序內購買如何滿足大量購買計劃?
- 21. 虛擬主機與多個網站的專用服務器上的Django網站
- 22. 是否啓用了cron作業/計劃任務服務?
- 23. 計劃作業作業
- 24. 1and1.com專用服務器上的PHP Cron作業
- 25. 在網站託管計劃上運行java.JAR服務器
- 26. 幫助實施「商店購買」計劃
- 27. wget從專用服務器的HTTPS網站
- 28. 在沒有外部服務器的情況下驗證應用購買收據?
- 29. 購買iOS源代碼的網站?
- 30. 演示網站的購買標題
+1非常漂亮的,在此之前,似乎更適合這樣做這類與會話開始和普通頁面加載的東西。你總是發現它是可靠的? – 2009-04-09 10:44:16