2

When developing my web application using Django, I faced a problem, when I call some functions locally they work correctly, but once i call them over HTTP request they are not executed. I asked around and i was told to execute them asynchronously outside the request response cycle using celery and a messaging queue server, it worked well, but still I don't understand why i have to execute some tasks asynchronously even when i don't have race condition and there's only one client calling the web service. This is a big black spot for me because I make it work without really knowing how. Can anyone explain it to me?

Thanks.

4

1 に答える 1

1

私が知っているキューベースのシステムの主な利点は次の 2 つです。

1 つは、作業が完了するのを待たずにクライアントに応答できることです。これにより、ページの読み込みが速くなり、クライアントの待ち時間が短縮されます。

第 2 に、キューは、複数の作業者が利用できるスケジュールされたジョブの中心的な場所を提供します。アプリケーションの特定のコンポーネントが実行すべき作業量に追いつかない場合 (または、何らかの理由で失敗した場合)、そのコンポーネントの他のインスタンスで作業を行うことができます。実行する必要があるすべての作業を見つけることができます。

于 2013-07-07T22:07:51.320 に答える