問題タブ [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 投票する
2 に答える
928 参照

python - 同時挿入で重複アイテムが作成されないようにするにはどうすればよいですか?

次のような SQLAlchemy モデル オブジェクトがあります。

2 つの個別のクライアント プロセスで、このコードが実行され、一意の task_id を持つ新しいインスタンスが作成されます。task_id のインスタンスは 1 つだけである必要があります。

指定された ID を持つタスクをアトミックに作成するように、このコードを書き直すにはどうすればよいですか?

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

django - Django Celery ビートが開始時にクラッシュする

最近、RabbitMQ と Celery を使用して新しいサーバーを構成しました。マシンで Celerybeat を起動しようとすると、数秒間起動して停止します。ログ ファイルに適切な権限を与え、所有者をアプリケーション ユーザーに変更しました。celerybeat.log ファイルも確認しましたが、エラーは記録されていません。

プロジェクトフォルダーでこの方法で開始しようとしました:

そして、私はこのエラーを受け取りました:

誰かが私をここで正しい方向に向けてください。

0 投票する
2 に答える
3162 参照

django - djangocelery-request.FILES['photo']をタスクに送信する方法

私のサイトからアップロードされたファイルであるrequest.FILES['photo']を次の方法でtCeleryに送信しようとしています。

シリアル化できないため、ピクルスエラーが発生します。タスクにファイルを送信する方法は何ですか?

エラー:「StringOオブジェクトをピクルスできません」ありがとう。

0 投票する
2 に答える
4394 参照

python - セロリタスクがまだ処理されているかどうかをテストします

タスク(task_id)がまだセロリで処理されているかどうかをテストするにはどうすればよいですか?次のシナリオがあります。

  1. Djangoビューでタスクを開始します
  2. BaseAsyncResultをセッションに保存します
  3. セロリデーモンを(ハード)シャットダウンして、タスクが処理されないようにします
  4. タスクが「デッド」であるかどうかを確認します

何か案は?セロリによって処理されているすべてのタスクを検索し、私のものがまだそこにあるかどうかを確認できますか?

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

python - セロリ-メモリ消費を最小限に抑える

Ubuntu 10.4 64ビットで実行されているcelerydプロセスは約300あり、アイドル状態ではすべてのプロセスに最大19mb RES、最大174mb VIRTが必要です。したがって、すべてのプロセスでアイドル状態のRAMは約6GBです。アクティブ状態の場合-プロセスには最大100mbのRESと最大300mbのVIRTが必要です

すべてのプロセスはminidom(xmlファイルは<500kb、単純な構造)とurllibを使用します。

質問は-RAMの消費をどのように減らすことができるか-少なくともアイドル状態のワーカーにとっては、おそらくいくつかのセロリまたはPythonオプションが役立つ可能性がありますか?どの部分がメモリの大部分を占めるかを判断する方法は?

UPD:それはフライト検索エージェントであり、1つのエージェンシー/日付に対して1人のワーカーです。10の代理店があり、1つのユーザー検索== 9の日付であるため、1つのユーザー検索ごとに10*9のエージェントがあります。

アイドル状態のワーカー(apacheのMaxSpareServersなど)を回避するために、オンデマンドでcelerydプロセスを開始することは可能ですか?

UPD2:エージェントのライフサイクルは-HTTPリクエストを送信し、応答を10〜20秒待ち、xmlを解析し(0.02秒未満かかります)、結果をMySQLに保存します

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

python - Django + Celery で Haystack 検索インデックスを更新する

私の Django プロジェクトでは、Celery を使用しています。crontab からのコマンドを定期的なタスクに切り替えましたが、うまく機能しますが、モデルのメソッドを呼び出しているだけです。Haystack インデックスを定期的なタスクからも更新することはできますか? 誰かがこれをしましたか?

これは、Haystack のドキュメントからインデックスを更新するコマンドですが、タスクからそれを呼び出す方法がわかりません。

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

django - Django celery は私に (13, 'Permission Denied') を与えます

プロジェクトの 1 つで django セロリを使用していますが、(13、許可が拒否されました) エラーが発生します。

トレースバックについては、以下を参照してください。

許可と関係があると思います。サーバーへのログイン資格情報は問題ありません。これ以外はすべて機能します。

celeryd デーモンは、指定した rabbitmq 接続資格情報で正常に動作します。

開発サーバーをルートとして実行すると、このエラーは発生しません。ファイルまたはソケットのアクセス許可に関係があるのではないかと思いますが、どこで修正すればよいかわかりません。

0 投票する
2 に答える
7756 参照

python - 毎月 1 日に実行される Celery のタスクをスケジュールするにはどうすればよいですか?

毎月 1 日に実行されるのタスクをスケジュールするにはどうすればよいですか?

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

python - Celery での投稿のスケジュール設定と再スケジュールに関する問題

私は Django ブログに取り組んでおり、後日公開する投稿をスケジュールできるようにする必要があります。Celery は、最初に投稿をスケジュールするのに最適ですが、ユーザーが投稿を更新して、スケジュールを変更するか、無期限にキャンセルしようとすると、問題が発生します。

これが私がやろうとしていることです:

問題は、Celery タスク ID が取り消されたものとしてリストされると、再スケジュールを試みても取り消されたままになることです。これは、簡単な解決策があるはずの十分に一般的なタスクのようです。

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

python - 静かにクラッシュする労働者の検出と診断

デーモン化を使用して Celery 2 を実行しています - http://ask.github.com/celery/cookbook/daemonizing.htmlと RabbitMQ 。時々、サイレント クラッシュが発生します。celeryd.log に表示されるのは、

次に、タスク処理なしで「ブローカーからタスクを取得」のみ。

ps -C celeryd表示 - セロリ ノードが実行されていることを示します。

私が行う場合: /etc/init.d/celeryd restart- celeryd プロセスの数が 2 倍になります。古いプロセスはもはやデーモンによって制御されていないようです。

  1. 検出方法 - ブローカーからタスクを受信して​​もタスク処理が実行されないのはなぜですか?
  2. 古い celeryd プロセスが によって強制終了されないのはなぜ/etc/init.d/celeryd restartですか?