現在、5分ごとに実行されるWindowsサービスがあります。このコードは、データベースから行を選択して処理します。上限(選択できる最大行数)があるため、選択される行数は0〜100の範囲で指定できます。
ランダムなパーセンテージの選択に基づいて、これらの行に対していくつかの処理を実行しようとしています。
- タスク125%
- タスク250%
- タスク3100%
簡単にするために、サービスが100行を選択すると、ランダムに選択された25行がタスク1を実行し、ランダムに選択された50行がタスク2を実行し、すべての行がタスク3を実行するとします。
私が現在持っているコードは次のようになります:
var rows = repository.GetRows(100);
foreach(var row in rows)
{
task1.Run(row);
task2.Run(row);
task3.Run(row);
}
これにより、すべての行で3つのタスクすべてが実行されます。各タスクに割り当てられたパーセンテージのみを選択するにはどうすればよいですか?