実行する処理が重い場合、処理を受け付けるプログラムと処理を実行するプログラムを分離して、非同期にバックグラウンドで処理をすることで、リクエスト元のプログラムには素早く応答を返すことができる。1 PythonではCeleryを使うケースが多いようなので、調べたことをメモする。 セットアップまずは、pipでインストール
実行する処理が重い場合、処理を受け付けるプログラムと処理を実行するプログラムを分離して、非同期にバックグラウンドで処理をすることで、リクエスト元のプログラムには素早く応答を返すことができる。1 PythonではCeleryを使うケースが多いようなので、調べたことをメモする。 セットアップまずは、pipでインストール
Have you ever asked yourself what happens when you start a Celery worker? Ok, it might not have been on your mind. But you might have come across things like execution pool, concurrency settings, prefork, threads, gevent, eventlet and solo. So, what is it all about? How does it all fit together? And how is it related to the mechanics of a Celery worker? The Celery worker When you start a Celery wo
celerydのメインプロセスは、タスクのメッセージをブローカーから受け取った後、ワーカープロセスに処理を実行させる。 メッセージをブローカーから受け取る際、実行中のものとは別に、事前にメッセージを取得(プリフェッチ)するようになっている。 全てのワーカープロセスが処理中であってもプリフェッチは行われる。 それぞれのタスクの処理に長い時間がかかる場合、複数のマシンでcelerydを動かしていても、このプリフェッチによってタスクが待ち状態になってしまう状況が発生する。 このプリフェッチ数は CELERYD_PREFETCH_MULTIPLIER の値を設定することで変更できる。デフォルト値は4。これは1ワーカーごとの値となる。(例: concurrencyを3に設定した場合は12) http://docs.celeryproject.org/en/latest/configuration.h
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く