私は、nopcommerceへのプラグインでタスクをコーディングしています。タスクは、Webサイトからカタログをダウンロードする必要があります(https://data.icecat.biz/export/level4/)。ダウンロードが何らかの理由で失敗した場合、私のプログラムは1分間待ってからもう一度2,3回試して欲しい。nopcommerceタスクでThread.SleepまたはTask.Delayを使用する必要がありますか?
例えば
while(notTiredOfWaiting)
{
try{
// my download stuff here
return data;
}
catch(Exception e)
{
Thread.Sleep(60000);
// or
Task.Delay(60000);
}
}
私の問題が起動し、自分のタスクを実行するブラックボックスのいくつかの種類、nopcommerceであるということです。 "簡単な"解決策はThread.Sleep()を使用することですが、他の重要なプロセスが同じスレッドで実行されているかどうかはわかりません。私はTask.Delay()を試しましたが、私の実装ではうまくいかないようです。
Thread.SleepとTask.Delay()はSOの話題ですが、nopCommerceのベストプラクティスについて具体的な回答を求めています。
編集。
タスクはIScheduleTaskServiceを使用しています。
あなたは 'IScheduleTaskService'を使用していますか?または、自分のタスクスケジューリングを作成していますか? – Max
@max。私はIScheduleTaskServiceを使用します。 –