私は、Webアプリケーションのクラスを定期的に呼び出すWindowsサービスを作成します。 これを実現する方法は何か?Webアプリケーションのスケジューラ
答えて
タイマーを使用して、これに類似した何か、:
protected override void OnStart(string[] args)
{
var timer = new System.Timers.Timer();
timer.Elapsed += new ElapsedEventHandler(DoSomething);
//do something every 30 seconds
timer.Interval = TimeSpan.FromSeconds(30).TotalMilliseconds;
timer.Start();
}
private void DoSomething(object sender, ElapsedEventArgs e)
{
//Do your timed event here...
}
はQuartz.NETを見てください。
"Quartz.NETは、小規模なアプリケーションから大規模なエンタープライズシステムまで、あらゆる機能を備えたオープンソースのジョブスケジューリングシステムです。
私はこれまで何らかのタイプのスケジューリングが必要なときに使用しました。
適用可能です。これは、Windowsサービスの必要性を減らしたり削除したりするかもしれませんが、Windowsサービス自体の内部で何かを起動するために使用することはできません。 –
Quartz.netスケジューラは、ジョブを簡単に実行できるライブラリです。ジョブは、アプリケーション内またはdll内のコードの一部です。このスケジュールは、12月1日から6月1日に実行されるようなタイミング機能、およびその他の優れた機能を備えています。このポストには多少の残虐行為があるかもしれませんが、クォーツの機能のいくつかは役に立ちます。 – Jethro
はきれいに聞こえる。私はコメントする前に私の研究をすべきだったと思う、ちょうど提供された引用からの図書館より "システム"のより多くであると仮定した。 –
私はあなたのより明示的な答えを認めます。 –
@brendan:エラーが発生しました4th行の 'void'を 'System.Timers.ElapsedEventHandler'に暗黙的に変換できません – MayureshP
、残念ですが、Elapsedが新しいElapsedEvenHandlerになる必要があります – brendan