1

問題は次のとおりです。さまざまな種類のタスクをワーカーに分散するサービス ブローカーがあります。これらのタスクは、サイズと複雑さが異なるため、処理に必要な時間が異なります。

ここで、サービスの種類ごとにタイムアウト値を計算して、タイムアウト時間が経過した後に、タスクに時間がかかり、何か問題が発生した可能性があることをクライアントに通知できるようにします。

私が試した2つのオプションがありますが、どちらにも欠陥があります。

  1. タイムアウトを計算しないで、構成可能な設定にします (かなり恣意的であるため、面倒です)。
  2. 非常に寛大なタイムアウトから開始し、各タスクの後で何らかの実行統計 (実行平均 + 分散など) を計算します。これには、実行時間の長いタスクが打ち切られるため、平均に収束するという問題があります。最終的に、あまりにも狭い範囲のタスク期間を許可します。

タスク期間の分布の裾は長い (正規分布よりも長い) 可能性が高いため、より複雑な統計が必要になる可能性があります。

タスクの期間に基づいてタイムアウト値を計算する受け入れられた方法はありますか?

4

0 に答える 0