簡體   English   中英

一個應用程序(.Net C#)中的計划任務

[英]Scheduled tasks in one application (.Net C#)

我有一個訂閱數據庫,我想每x分鍾為每個訂閱運行一次。

但是每個訂閱都有自己的時間和時間+每x分鍾應運行的功能。

它可以是同時運行的多個訂閱。

也許它應該看起來像一個計划任務,該任務從一個特定時間開始,每x分鍾運行到一個特定時間。

我希望我描述自己想做的正確的事,我的英語不是最好的。

有誰知道我如何構建應用程序來做到這一點?

您可以在這里選擇兩個:

  • 將SQL Agent和設置作業與所需的計划一起使用(當然,這是假定您正在使用SQL Server)。
  • 編寫一個帶有計時器的Windows服務 ,該計時器查詢您的數據庫並根據需要執行不同的任務。

您提到了計划任務 ,這可能是另一個選擇,但這將要求您自動設置新任務以及要運行的實際任務。 使用我上面概述的選項,這兩個選項都更容易實現。

我建議您為此使用System.Threading.Timer 要安排工作,請執行以下操作:

new Timer(_ => DoTheJob()).Change(your_interval_in_milliseconds, Timeout.Infinite);

然后在完成工作后,使用相同的代碼安排下一次運行。 這樣可以防止同時運行同一作業的2個實例。 如果那不能正確回答您的問題,請告訴我。

您可能正在描述Quartz.NET可以為您做什么。 檢查一下,可能值得花一些時間。

因此,您應該編寫某種調度程序。 它將從隊列中取出任務並執行它們...您可以以一種方式創建調度程序,例如,每個任務都將在單獨的線程中運行,這將顯着提高性能!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM