私は、かなり柔軟にタスクをスケジュールできるC#ライブラリ(できればオープンソース)を探しています。具体的には、「XXXX時間の毎週日曜日」または「XXXX時間の毎週月曜日」だけでなく、N単位ごとに実行するようにスケジュールできる必要があります。それ以上の機能があればいいのですが、必要ではありません。これは、Azure WorkerRoleで使用したいものです。WindowsWorkers Tasks、「at」、「Cron」、およびインストールやGUIが必要なサードパーティアプリをすぐに除外します。図書館を探しています。
http://quartznet.sourceforge.net/
「Quartz.NETは、非常に一般的なオープンソースJavaジョブスケジューリングフレームワーク、Quartz。)の移植版です。」
PS:賢い人への言葉、仕事中にだけquartz.netにナビゲートしようとしないでください;-)
私はJava日でQuartzを使用しました。それは素晴らしく機能しました。現在、いくつかの.Net作業に使用しています。ですから、私はそれに対する推奨事項を確かに二番目にしています。
もう1つ興味深いのは、.Net 4.0の新しいSystem.Threading.Tasksです。私は仕事を並列化するタスクを使用しているところですが、マルチコア/プロセッサを最大限に活用しています。そこにTaskSchedulerという名前のクラスがあることに気づきましたが、詳細に調べていませんが、QueueTask、DeQueTaskなどのメソッドがあります。少なくとも調査する価値があるかもしれません。
Codeprojectの 。NET用の新しいタスクスケジューラクラスライブラリ を参照してください。
この質問で Quartz について読みました タスクを毎日実行するようにC#Windowsサービスをスケジュールするにはどうすればよいですか? 。これはC#ライブラリであり、柔軟なスケジューリングが可能です。
クォーツはニースのソリューションのようです。
私は最近(今年)私が取り組んでいた主要なプロジェクトでカスタムタスクスケジューラを作成する必要がありました。また、Windowsタスクスケジューラを使用できず、アセンブリを(ASP.net Webサイト経由で)アップロードしてカスタム機能を実行し、指定した時間にサービスに適切なタスクを実行させる機能も必要でした。
正直なところ、これは少し悪夢でした(設計と実装はそれほど難しくありませんでしたが、スケジューリングロジックは少しドラッグでした)。
「自分で転がす」ことを決定する前に、他のすべての手段を使い果たすことを強くお勧めします(車輪の再発明!)。
Aditi Technologies から Scheduler と呼ばれる新しいクラウドベースのスケジューラーがあります。
スケジューラを使用すると、開発者は単純または複雑なCRONスケジュールで実行されるHTTP Webhookを介してタスクの実行をスケジュールできます。