0
大量のジョブを毎回実行するISchedulerオブジェクト内のサービスウィンドウ。しかし、あなたはCPUの作業を開始するときに100%の使用を取得します。過剰なリソース使用を避けるために、並行ジョブの実行を制限したい。その目的は、一度に約3つのプロセスを実行することが可能です。多かれ少なかれ、マルチスレッドの標準的なsemaforoに似ています。私はスケジュールをやっている方法を紹介するコードの例を入れている:同時ジョブの最大数を設定するQuatz.Net
_schedulerQuartz = StdSchedulerFactory.GetDefaultScheduler();
for(int i = 0; i <=10;i++){
TriggerBuilder triggerBuilder = TriggerBuilder.Create()
.WithIdentity("TEST"+i.toString(), "TEST"+i.toString())
.StartNow();
triggerBuilder.WithSchedule(SimpleScheduleBuilder.RepeatSecondlyForever(60));
ITrigger trigger = triggerBuilder.Build();
IJobDetail job = JobBuilder.Create(typeof(MYPROCESS))
.WithIdentity("TEST2"+i.toString(), "TEST2"+i.toString())
.UsingJobData("ClientId", 0)
.UsingJobData("UserId", 0)
.Build();
_schedulerQuartz.ScheduleJob(job, trigger);
}
_schedulerQuartz.Start();