2017-06-16 15 views

答えて

4

のメッセージキューを使用するように私の上司を説得することができるようにsubeprocess.Popen()上でメッセージキューの利点をリストします。

subprocess.Popen()は、渡された特定のコマンドの新しいOSプロセス(単にforkexecと呼んで)を生成します。したがって、別々のプロセスで実行するために何かが必要な場合や、(オプションで)実行の結果を取得する場合(パイプ経由でやや厄介な方法で)には最適です。

  • ストレージ(より正確には、PostgreSQLやMongoDBのようないくつかの既存のストレージへのインタフェース)のタスク(またはメッセージ)のために、以下のとおりです(セロリやActiveJobなど)

    キューは、次の2つの主なものを提供しますそのストレージに行く前に自動的にシリアル化されます。

  • このストレージをポーリングし、実際にこれらのタスクを実行する作業者(実行前に自動的に非直列化する)。

したがって、分散環境でも多分、従業員が多い可能性があります。これは、垂直スケーラビリティだけでなく、水平のスケーラビリティを提供します(従業員を別のマシンに保つことによって)。

一方、キューは、非同期処理(後で実行する必要があり、現在は結果を必要としないジョブ)に適しており、単純なプロセス生成よりも重いです。

したがって、メインプロセス外のどこかで実行される単なる単発ジョブがあれば、プロセスを使用します。

非同期に実行する必要のあるさまざまなジョブがあり、そのプロセスを拡張する機能が必要な場合は、キューを使用する必要があります。

+0

これ以外のものはありますか? –

+0

重量のあるキューはどういう意味ですか? –

関連する問題