7

私は最近、ジャンゴとセロリで遊んでいます。開発中に厄介なことの 1 つは、タスクを変更するたびにセロリ デーモンを再起動する必要があることです。私が開発しているときは、通常、アプリの変更時に django フレームワークを自動的にリロードする「manage.py runserver」を使用するのが好きです。

runserver が実行するリロードプロセスにフックを追加して、実行中のセロリデーモンを自動的に再起動する方法はありますか?

または、セロリには、開発に使用する必要がある同様の監視および変更時のリロード モードがありますか?

4

5 に答える 5

4

Django-supervisor は、この目的に非常に適しています。Djangoサーバー、Celery、その他必要なものを起動し、開発サーバーと本番サーバーで異なる構成にすることができます. また、コードが変更されたときにセロリ デーモンをリロードすることも認識しています。 https://github.com/rfk/django-supervisor

于 2011-06-27T14:28:04.130 に答える
2

I believe you can set CELERY_ALWAYS_EAGER to true.

于 2012-01-26T05:41:13.133 に答える
1

Celery 2.5 には、この目的にも使用できる実験的なランタイム オプション --autoreload があります。詳細については、リリース ノートを参照してください。そうは言っても、django-supervisor (@Lee Semel 経由) は物事を行うためのより良い方法のように見えると思います。他の読者が非同期処理用に別のアプリを構成する必要がない場合に備えて、この代替案をここに投稿すると思いました。

于 2012-06-01T13:43:27.337 に答える
1

セロリには、手動で再起動する必要があるよりも、コードのリロードやコード変更時の自動再起動の機能がありませんでした。

フックを追加する方法はありません。再起動を実行するためだけに django のソース コードを編集する価値はないと思います。個人的には、私が開発している間、丸太の尾の代わりに色で装飾されたセロリの出力シェルがより読みやすいのを見ることを好みます。

于 2011-03-02T19:11:06.650 に答える