私は〜50の定期的なジョブを持つハングファイアサーバーを1台持っています。 IIS上のHangfireの設定はthis exampleです。 経常ジョブは、このようなstartup.csでhangfireに追加:1つのジョブを同時に実行するには?
RecurringJob.AddOrUpdate(job.desctiprion,
() => job.startJob(),
job.cron,
TimeZoneInfo.Local);
私は毎分を実行している新しい定期的なジョブを追加する必要があります。しかし、この仕事がより長く続くことはほとんどありません。私の目標 - この仕事の一つの標本だけを同時に働かせるようにする。
どのような解決策がありますか?理解しているように、1つのスレッドで待ち行列のようなものが必要ですが、待ち行列はスレッド設定をサポートしていません。
それは、あなたが何をしようとしては明らかではありません「だけで1」と '同時に本当に一緒に行くしていないようです。これは:*この仕事の一つの標本だけを同時に働かせるようにする*意味がない。明確にすることはできますか? –
このジョブが自分自身と重複しないようにしたいのですか? – DavidG
処理中のこの定期的なジョブの1つ以上のインスタンスがあるときは、状況を避ける必要があります。はい、私はこの仕事がそれ自身と重複しないようにしたいだけです。 たとえば、最初のジョブは17:00に実行され、この実行には2分30秒かかります。私は17時01分と17時02分にジョブを実行する必要はありませんが、17時03分にジョブを実行します。 私は、ジョブが現在実行中であるかどうかを検証するために、データベースにフラグを使用できることを理解します。しかし、たぶんHangfireには、このケースに対する単純で正確な解決策があります。 – sintasy