1. ホーム
  2. asp.net

[解決済み】スケジュールされたタスクの最適な実行方法【終了しました

2022-04-20 13:52:37

質問

今日は、ASP.NETウェブサイトのスケジュール・タスクを実行するためのコンソール・アプリケーションを作りました。しかし、この方法は少しエラーが発生しやすく、メンテナンスが困難だと思います。どのようにスケジュールされたタスクを実行するのか(Windows/IIS/ASP.NET環境において)

更新してください。

タスクの例

  • データベース内のメールキューからメールを送信する
  • データベースから古くなったオブジェクトを削除する
  • Google AdWordsから統計情報を取得し、データベースのテーブルを埋める。

解決するには?

あるウェブサイトのすべてのタスク(スケジュールする必要があるもの)は、ウェブサイト内に保管され、特別なページから呼び出されます。 そして、このページを頻繁に呼び出す簡単なWindowsサービスを書きました。 ページが実行されると、値が返されます。 まだやることがあるとわかっているときは、すぐにそのページを実行し、そうでないときはしばらくしてから実行します。 この方法は、私にとって非常に効果的で、すべてのタスクロジックをウェブコードと一緒に保持することができます。 シンプルなWindowsサービスを書く前は、Windowsスケジューラを使って、X分ごとにページを呼び出していました。

のような監視サービスを使って実行するのも便利です。 ピングドーム . サービスコードを実行するページにhttpチェックを向けます。 そのページが結果を返すようにすれば、何か問題が発生したときにPingdomが警告メッセージを送信するトリガーとして利用できます。