2017-06-06 10 views
0

hangfireライブラリを使用して定期的なタスクを実行したいと考えています。この質問の簡潔さのために。水平スケーリング付きハングファイア

5分ごとに1つのタスクを実行するだけです。

通常hangfireを設定しました。私のデータベースを指しています。私は私の青いWebアプリケーションに私のWebプロジェクトをプッシュします。そしてすべてが楽しく走ります。 5分ごとにタスクが実行されます。

しかし、私の需要が増えたときに、私は自動的に、または私のWebサーバーを手動で3つのインスタンスにスケールアップします。

このタスクは、3つのすべてのサーバーインスタンスで実行されますか。

タスクを作成したサーバーやインスタンスに関係なく、タスクが一度だけ実行されるように設計するにはどうすればよいですか。

+0

Azureを使用している場合、定期的なタスクを実行するために、Azure関数やWebジョブを使用しないでください。 –

+0

私は紺碧を使用しています。私はそれらを調べます。 ATMプロジェクトはすべて1つのWebプロジェクトに含まれており、すべてのコードが同じ場所にある場合は管理が簡単です。 – Zapnologica

答えて

2

the docsから:

同時に、プロセス内 マシン、または複数のマシン上に複数のサーバーインスタンスを実行することが可能です。各サーバーは、調整ロジックを実行するために 分散ロックを使用します。

e.e.e.あなたは3つのインスタンスのHangfireを持っていますが、個々のジョブはそのうちの1つによってのみ実行されますが、毎回同じサーバー上にあるわけではありません。これを行うには、処理を実行するサーバーに固有のキューにジョブを割り当てる、このStackOverflowの回答に従うことができます。hangfire recurring job on every server

+0

これは完璧なので、私の望む操作はデフォルトでビルドインされています。 – Zapnologica

関連する問題