1. ホーム

C# タイムドタスク (I)

2022-02-24 03:40:25

真夜中に実行しなければならない動作はたくさんあり、人は毎日待っているわけにはいかないので、夜中の3時にプロジェクトの一時フォルダを掃除するなど、プログラムが望む動作を実行できるようなタイマーを使用しなければならない。タイマーを使えば、時間通りにタスクを実行することが簡単にできます。

 タイマーを使うには、タイマーの心臓部であるFluentSchedulerへの参照を追加します。

まず、タイマーのタスクを書きますが、これはこのクラスに書くことで、何かをするときに必要です。しかし、タイマーを動作させるのはこの動作だけではありません。次の画像に示すように、プロジェクトの下に Global.asx というファイルを見つける必要があります。

開くと中にメソッドがあり、2つのステップを行うだけで、1つ目は2つの用途を追加すること、2つ目は時間制限のあるタスクを登録することです。もちろん、使いやすいように複数登録することも可能です。

使用するのは、冒頭で追加したリファレンスFluentSchedulerと、時間指定タスクが格納されるフォルダの2つです

もう一つのステップは、時間指定タスクを登録することです。そのためのコードは、Application_Startというメソッド本体の中に書かれています。

JobManager.Initialize()は、タイムドタスクを登録するためのメソッドです。括弧内のnewは登録が必要な時限タスクの名前で、この名前は先ほど追加した2つのusesのうち時限タスクが格納されているフォルダのもので、時限タスクのために書いたメソッドになります。

登録が完了したら、作成したタイムドタスクのメソッドにもう少し手を加えて、タイムアウトさせる必要のある操作を書き始める必要があります。ここでも、時間指定タスクのメソッドには、登録時と同じようにFluentSchedulerを追加しておく必要があります。このメソッドを最初に作成したときは、次の図のように内部にクラスが1つだけ存在します。

ここでは、このクラスを FluentScheduler 内の Registry から継承し、この時間指定タスクと同じ名前のメソッドを作成する必要があります。

    これで、中に時間制のタスクが書けるようになります。