問題タブ [celery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
315 参照

django - ブロードキャストを djcelery+ghettoq で動作させるにはどうすればよいですか

私は djcelery 2.1.4 と ghettoq 0.4.5 および django 1.2.3 を使用しており、一日中タスクを実行できますが、ブロードキャスト機能を使用しようとすると、エラーなしで失敗します。最も単純なケースを考えてみましょう - 私は celeryd を実行します:

デーモンが起動し、ping を実行しようとします。

ping が作成されたというメッセージがデータベースに表示されますが、どのノードもそれを取得していないようです。ここで何か間違ったことをしていますか?ブロードキャストはゲットークで動作しませんか?

0 投票する
1 に答える
614 参照

python - セロリはcentos5.4では起動しません

「pipinstallcelery」を使用してセロリをインストールし、同じネットワークで実行されている別のサーバーで実行されているrabbitmqサーバーと通信するようにceleryconfig.pyを設定します。私が持っているPythonのバージョンは2.7です。startcelerydを実行しようとすると、次のエラーが発生します。

0 投票する
3 に答える
11744 参照

python - Celery が Python シェルでは機能するのに、Django ビューでは機能しないのはなぜですか? (輸入問題)

Celery (最新の安定版) をインストールしました。 というディレクトリがあり/home/myuser/fable/jobsます。このディレクトリ内に、tasks.py というファイルがあります。

このディレクトリ内には、celeryconfig.py というファイルもあります。

私の/etc/profileでは、これらを PYTHONPATH として設定しています。

  • PYTHONPATH=/home/myuser/fable:/home/myuser/fable/jobs

そこで、コンソール ( ) を使用して Celery ワーカーを実行し、$ celeryd --loglevel=INFO試してみました。Python コンソールを開き、タスクをインポートします。次に、Submitter を実行します。

私のコンソールでわかるように、すべてが機能します

しかし、Django の views.py に入り、上記のように正確に 3 行のコードを実行すると、次のようになります。

celeryd クライアントを起動すると、それが登録されていることが示されるため、奇妙です。

誰か助けてくれませんか?

0 投票する
1 に答える
3159 参照

python - セロリを使用して異なるワーカープールを構成するにはどうすればよいですか?

(一般に) 次の 3 つのクラスのワーカーを使用して、キュー実行サービスをデプロイする必要があります。

  1. 時間がかかり、連続して処理できる定期的で優先度の低いジョブ クラス。これらのジョブは、システム内で最大 0..2 ワーカーのみを使用する必要があります。

  2. 短期間から中程度の時間がかかる定期的で締め切りに敏感なジョブ クラス (たとえば、5 分で終了)

  3. #1 より優先度が高いが、#2 とインターリーブできるアドホック ジョブ クラス。このタイプのジョブが入ったときに非アクティブなクラス #2 のワーカーは、#2 のワーカーのプールを枯渇させることなく、それを処理する必要があります。

3 つのジョブ クラスはすべて同じタスクです。これらの唯一の違いは、要求方法です。それらは同じ入力を受け取り、同じ出力を生成しますが、それぞれに異なるパフォーマンス保証があります。

セロリを使用してこれを実装するにはどうすればよいですか?

0 投票する
1 に答える
1312 参照

python - 既存のセロリワーカープロセスに動的に関数を追加しますか?

私はセロリを始めていますが、すでに開始されているセロリプロセスにモジュールを追加できるかどうか知りたいです。つまり、celeryconfig.pyを介してモジュールを追加する代わりに

ワーカーを開始する前に、ワーカープロセスの開始後に、後で何とかしてadditional_moduleを使用できるようにします。

前もって感謝します。

0 投票する
1 に答える
168 参照

django - Celery v2.1.4で動作するRabbitMQの最も古いバージョンは何ですか?

Celery v2.1.4が動作できるRabbitMQの最小バージョンは何ですか?

0 投票する
4 に答える
29601 参照

python - セロリ設定ファイルが見つからないのはなぜですか?

/home/myuser/mysite-env/lib/python2.6/site-packages/celery/loaders/default.py:53:NotConfigured:celeryconfig.pyモジュールが見つかりません!それが存在し、Pythonで利用可能であることを確認してください。
NotConfigured)

/ etc/profileと仮想環境の「アクティブ化」で定義しました。しかし、それはそれを読んでいません。

0 投票する
1 に答える
644 参照

django - Django Celery を使用してオブジェクトにビュー カウンターを追加する

重要ではありませんが、これはこの質問のフォローアップです。

データベース内の各オブジェクトが表示された回数を数えたいと考えています。Personいくつかのインスタンスを持つモデルがあるとしましょう。Personデータベースの書き込みを待たないように Django Celery を使用して、各インスタンスがモデルで表示された回数のカウンターを保持したいと考えています。

現時点では、私はこれをやっています:

次に、人のページをリストするビューが呼び出されるたびに、すべての人を取得し、次のように統計を更新します。

その後、ブラウザに表示される人物のリストを返します。統計の更新は非同期で行われると思っていましたが、ページが表示されるまでに明らかに長い遅延がありprint、Celery コマンド ウィンドウに追加ごとにステートメントが表示されることで確認できます。ページは、最後の統計が更新された後にのみレンダリングされます。

ユーザーがデータベースの更新が完了するのを待たないようにするにはどうすればよいですか?

アップデート

一人一人を処理するにはワーカープロセスが足りていないことが関係しているのではないかと考えたので、代わりに人のリストをパラメーターとして受け取る関数を作成し、これを実行するタスクとして使用しました。したがって、キュー内のタスクは 1 つだけです。

ただし、コンソールに出力すると、次のようになります。

次に、「追加」ステップと「完了」ステップの間に明確な遅延があり、関数の戻り値は ですNone

0 投票する
4 に答える
3401 参照

django - CeleryのメッセージキューとしてMongoDBを使用する

(Djangoアプリで)CeleryのメッセージキューとしてMongoDBを使用しようとしています。現在の開発バージョンのCelery(2.2.0rc2)でこれを実行できるようになっていますが、作成中のタスクをワーカーに取得させることができないようです。

バージョン:celery v2.2.0rc3
mongodb 1.6.5
pymongo 1.9
django-celery 2.2.0rc2

私の設定では、私は持っています:

次のようにテストtasks.pyファイルを作成しました。

バックグラウンドでcelerydを起動すると、正常に起動しているように見えます。次に、Pythonシェルを開いて、次のコマンドを実行します。

問題は、作業者がタスクを引き受けることがないことです。設定などが足りませんか?セロリをメッセージキューにポイントするにはどうすればよいですか?

0 投票する
1 に答える
5794 参照

python - Djangoを使用したCelery-デプロイ

プロジェクトでセロリを使うことを考えています。使い方など、たくさんの情報を見つけました。興味のあるのは、ソリューションをデプロイ/パッケージ化する方法です。

djangoアプリとcelerydworker(メールを送信するコンポーネント)の2つのコンポーネントを実行する必要があります。たとえば、djangoアプリでサポートチケットをメールで送信するemail_ticketタスクを使用したいとします。djangoアプリでtasks.pyを作成します。

djangoアプリをデプロイしてから、同じパスから別のプロセスとしてcelerydを実行しますか?

異なるサーバー上のワーカーはどうですか?djangoアプリケーション全体をデプロイし、celerydのみを実行しますか?セロリは作業員にしか使えないと思いますが、セロリカムとセロリビートを使いたいです。

フィードバックをいただければ幸いです。ありがとう

フィードバックをありがとうございます。