0

私は、バックグラウンドジョブの内部動作と、それらがパフォーマンスをどのように改善するかをよりよく理解しようとしています。

目標は、アプリケーションができるだけ早くユーザーに応答を返すようにすることであると理解しています。たとえば、アプリケーションが機能しなくなるため、10秒かかる巨大なフィードを解析することは望ましくありません。他のリクエストを処理します。

したがって、実行に500ミリ秒以上かかる操作は、キューに入れられたバックグラウンドジョブに入れることをお勧めします。

私が理解していないのは、それは同じ問題を遅らせるだけではないかということです。そのバックグラウンドジョブを呼び出したユーザーがすぐに応答することは知っていますが、そのバックグラウンドジョブの開始時に別のユーザーが正しく来た場合(そして終了するのに10秒かかる場合)、そのユーザーは待つ必要がありませんか?

または、requests一度に1つずつ発生する可能性があるのは、1つ以上のバックグラウンドジョブの実行中にリクエストを開始できるという主な問題ですか?

あれは正しいですか?

4

1 に答える 1

1

バックグラウンドプロセスの考え方は、長時間実行されるすべてのプロセスを処理することです。

基本的に、これはWebサーバーの外部で実行され、要求を処理する1つまたは複数のプロセスを持つ外部アプリケーションです。

したがって、ジョブがWebサーバーを占有していないため、ページを要求している別のユーザーがいるかどうかは関係ありません。ユーザーは、何かが終了するのを待つ必要はありません。

そのユーザーがバックグラウンドキューに入れられていることも実行すると、最初のキューが終了するまで(または、複数のプロセスがそれを処理している場合は、利用可能なプロセスがあればすぐに)スタックします。

この説明がもう少し明確になることを願っています:)

于 2010-06-02T19:35:23.157 に答える