2

いくつかの処理ジョブを追加するための REST API を提供する Django アプリケーションを構築します。

要求ごとに、後で処理するためにジョブがデータベースに追加されます。

ジョブはカスタム コマンドで処理できます ( ./manage.py runJobs)

これらのジョブは CPU を集中的に使用するため、4 コアのマシンで実行している場合、ジョブを並行して実行する最大4 つのワーカーが必要です。

スケーリングする必要がある場合は、別のマシンで同じワーカーをより多く実行できるようにする必要があります。

ジョブの処理は大量のメモリを消費するので、ジョブごとに新しいプロセスを作成する、つまり、同じプロセスで多くのジョブを実行するよりも、1 つのジョブ./manage.py runJobsを実行して終了する方がよいと思います。

競合状態によって 2 人のワーカーが同じ仕事に就かないようにする必要があります。

私は Linux プロセス間の通信にあまり詳しくないので、ヒントを得るためにここに来るのは良い考えだと思いました。

この問題を解決するためにどのアーキテクチャを提案しますか?

4

1 に答える 1