C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 22 を表示中)
■9697 / )  Re[12]: System.Timers.Timerでのイベント処理
□投稿者/ 魔界の仮面弁士 (513回)-(2007/11/02(Fri) 15:07:35)
No9695 (nbmyou さん) に返信
> 拡張子がaaa(仮)の同名ファイルが同じフォルダに存在するかどうかで判断します。
「*.aaa の名でコピーして、コピー完了後、それを *.xml にリネーム」という手法も見かけます。

> 例えばポーリング間隔が5分と設定された場合、XMLファイルの処理が終わってから5分後に動作するような仕組みということでしょうか。
>(処理に2分かかったとすると、実際には次の処理は7分後となる?)
その場合、Sleep 時間を 5 分に設定すれば 7分後になってしまいますが、もっと短い Sleep 時間、
たとえば 15 秒に設定し、そのたびに「5分経過したかどうか」を判定して実行させるようにすれば、
次の実行は(7分後ではなく)5分後〜5分15秒程度の誤差に抑えられるかと。


あとは、ポーリング時間 5 分の間に処理が終わらなかった(たとえば 7 分かかる)場合に、
次の要求が来てしまった場合に、どのような対応を取るべきかも考えておく必要があるかも。
 (案1)他の要求も、最大 n 件まで並行で稼働させる。
 (案2)処理中の要求を中止させ、ただちに次の要求を開始する。
 (案3)処理中の要求を中止させ、次の5分後(つまり10分後)にそれを処理させる。
 (案4)処理中の要求が完了後、ただちに次の要求を開始する。
 (案5)処理中の要求が完了後、次の5分後(つまり10分後)にそれを処理させる。
返信 編集キー/


管理者用

- Child Tree -