私の Web サイトには、締め切りのあるタスクを持っているユーザーが何人かいます。締め切りが終わったらメールを送りたいです。ただし、このアクションは自動的に実行する必要があります。そのようなものを作る方法はありますか?aspでグローバルを使用する必要がありますか、それともより良い方法がありますか?
1 に答える
そのようなアクションを実行するには、スケジュールされたタスクまたは Windows サービスのいずれかを作成する必要があります。リクエストがない場合、ASP.NET Web サイトは喜んでスリープ状態になります。Web サーバー上でスレッドを長時間実行したくはありません。
(キャッシュの有効期限を使用して、コードへのスケジュールされたコールバックを取得する「トリック」があります。以下のオプションを使用できない場合は、それを試してください。)
エンドポイント (/CheckTaskDeadline.ashx のような URL) を記述し、呼び出されたときにタスクの期限をチェックしてアクション (電子メールの送信) をトリガーします。5 分ごとまたは 1 時間ごと (期限近くに確実にトリガーするために必要な粒度) にエンドポイントへの要求を行うスケジュールされたタスクを追加します。curlまたはwgetを使用して URL を「ping」します。
マシンにアクセスできない場合は、Web ホストの構成パネルを使用してスケジュールされたタスクを作成できる場合があります。そうでない場合は、うまく尋ねてください:-)。優れたホスティング サービス プロバイダーがお手伝いします。それ以外の場合は、アプリケーションを別のホストに移動するか、Pingdomなどの別の「ping」サービスを取得することを検討してください。