Asp.NETアプリからワーカーの開始時刻と終了時刻を記録するclockIn&clockOutモジュールがあります。
asp.netアプリケーションのcronジョブを実行して、ワーカーがその日付または週に時刻を入力していないかどうかを確認し、開始時刻と終了時刻を入力するように通知する電子メール通知を送信する方法を尋ねたいと思います。
Asp.NETアプリからワーカーの開始時刻と終了時刻を記録するclockIn&clockOutモジュールがあります。
asp.netアプリケーションのcronジョブを実行して、ワーカーがその日付または週に時刻を入力していないかどうかを確認し、開始時刻と終了時刻を入力するように通知する電子メール通知を送信する方法を尋ねたいと思います。
ASP.NETはその仕事には間違ったツールです。スケジュールされたタスクで実行されるコンソールアプリケーションを作成するか、定期的にポーリングするWindowsサービスを作成することをお勧めします。ASP.NETは、純粋に要求/応答モデルを対象としています。
どちらのユーザーも、ASP.NETサイトと同じくらい簡単に、Webサイトが読み書きしているデータストアにアクセスできます。
どちらも実行していない場合は、コンソールアプリケーションの作成と実装がはるかに簡単です。Windowsサービスはそれほど悪くはありませんが、デバッグの難しさなどの余分なオーバーヘッドが発生し、コンソールアプリケーションで可能なXCOPY展開モデルと比較して特別なインストールプロセスを実行する必要があります。
本当にASP.NETで実行したい場合は、これを実行するasp.net Webページを作成し、Windowsのスケジュールされたタスクを使用して実行できます。スケジュールされたタスクは、実行可能ファイルを実行するのと同じくらい簡単に、InternetExplorerを特定のページに開くことができます。 しかし、私はそれをお勧めしません。タスクが終了したら、IEウィンドウを永久に閉じる必要があります。これは、実際には「ハックな」ソリューションです。私が純粋なWeb開発者であり、それ以上のことは知りませんでしたが、それ以降はそうではありませんでした。
Jeff Atwoodは、このサイトの初期の頃に、ASP.NETでバックグラウンドタスクを実行する簡単な方法について、「ASP.NETでの簡単なバックグラウンドタスク」というタイトルのStackOverflowブログに投稿しました。タスクが比較的軽量の場合、これは悪い方法ではないかもしれません。本当にすべてを既存のASP.NETアプリ内に保持したい理由がある場合は、これが最適な方法かもしれません。
要旨:
技術的にはcronジョブではありませんが、Webサイト内から、1日のX時間に設定されたページを呼び出すようにWebサイトを取得できます。
これは、アプリケーションの開始からタイマーで呼び出されるWebメソッド呼び出しを介して数回行いました。
基本的な説明はここにあります: コードでc#からウェブページを呼び出す