作業プロジェクトでは、24時間年中無休で実行されるC#.NETWindowsサービスを作成するタスクを実行しています。プログラムは基本的に、HTTP、ネットワークパス、FTPなどのさまざまな場所間でファイルを(特定のパスと正規表現に基づいて)移動するだけです。管理者は、ASP.NETの管理ページを介してこれらのジョブをスケジュールします。このページでは、すべてのジョブがデータベースに保存されます。一見最も難しい部分は、これらのジョブをスケジュールすることです-タスクを特定の時間に特定の日に実行するようにスケジュールすることは非常に簡単ですが、タスクを毎日、毎週、特定の日に実行できるように十分に堅牢である必要もありますその月の、あるいは数秒/分ごとですら。このスケジューリング情報を保存する最も簡単な方法は、データベースでcron構文(http://adminschoice.com/crontab-quick-reference)を使用することであると結論付けました。
アプリケーションには、データベースの変更を10分ごとにチェックするタイマーがありますが、私が抱えている主な問題は、実行するタスクを取得することです。1つのオプションは、10分ごとにすべてを取得し、個々の行をチェックすることだと思います。それらが実行される予定であるかどうかを確認します。しかし、これは非常に非効率的で技術的に怠惰な方法だと思います。
Windowsのスケジュールされたタスクの方がはるかに簡単な方法であることは知っていますが、上司はそれを望んでいないようです。
いくつかのヒント/アドバイスを提供できる人に事前に感謝します。