1

Flask を使い始めたばかりで、サーバー側で 2 つの主な処理を行う Web アプリケーションを作成しています。別のオンライン API へのアクセス (1 秒間に非常に多くのリクエストしか送信できません) と、サーバーに接続しているユーザーへのページ リクエストの送信です。 .

ユーザーが Flask サーバーに接続すると、ユーザーのブラウザーにページが送信され、そのページの AJAX スクリプトがページにデータを入力します (これは UI パフォーマンスのために行われます)。このデータは別の API (League of Legends API) から取得されますが、1 秒あたりの呼び出し回数にはレート制限が設定されているため、キュー スクリプトを作成する必要があります。

現在、time.sleep()すべての呼び出しの後に関数を使用する予定ですが、これによりサーバーが他のことをできなくなるのではないかと心配しています。API 呼び出しが遅延している間も、サーバーがページ要求に応答することを望んでいます。

このために、マルチプロセッシングを使用する必要がありますか、それとも Flask にはこれを処理するための機能が組み込まれていますか? または、このために特定のプラグインをインストールする必要がありますか?

ありがとう!

4

1 に答える 1

1

これを行うための推奨される方法は、セロリのような非同期タスクキュー/ジョブを使用することだと思います

使用方法は非常に簡単です。バックグラウンドで実行する必要がある関数に @app.task を配置するだけです。

from celery import Celery

app = Celery('tasks', broker='amqp://guest@localhost//')

@app.task
def add(x, y):
    return x + y

result = add.delay(2, 2)

それは多くの機能と機能を備えており、あなたのために仕事をします。詳細については、ドキュメントを参照してください。

于 2016-05-09T09:53:48.987 に答える