問題タブ [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.
python - セロリのチュートリアルに従おうとすると、RabbitMQは「アクセスが拒否されました。ユーザーのログインが拒否されました」というエラーが表示されます。
セロリのチュートリアルに従おうとしていますが、実行すると問題が発生しpython manage.py celeryd
ます。RabbitMQサーバー(開発ボックスの仮想マシンにインストールされている)では、ユーザーがログインできません。
Django管理コンソールで次のように表示されます。
これはrabbit.log
、RabbitMQサーバー上のファイルに表示されます。
ユーザー、権限、仮想ホストの情報を再確認しましたが、すべて一致しているようです。ヘルプのトラブルシューティングは大歓迎です。
更新:@asksolのアドバイスに従って、次のトレースバックを取得します。
python - セロリを使用して特定の時間にタスクを実行するようにスケジュールするにはどうすればよいですか?
を調べましPeriodicTask
たが、例はそれを繰り返すことだけをカバーしています。cron
「毎週月曜日の午前 1 時にこのタスクを実行してください」と言う能力のようなものを探しています。
python - celerydキューを使用したpython imaplib sslエラー
最新のdjango svnを使用してpython 2.6でimaplibを使用すると問題が発生します。imap メールをキューにダウンロードしたい (celeryd を使用)。コマンドラインからメールを接続/ダウンロードできますが、django を介してタスクを celeryd にオフロードすると、次のエラーが表示されます: "SSLError: [Errno 1] _ssl.c:1325: error:1408F10B:SSL routines:SSL3_GET_RECORD :間違ったバージョン番号".
Imaplib のドキュメントには、SSL のバージョンを指定する方法が記載されていません。gmailからメールを取り込もうとしています。celeryd を使用してタスクをキューにオフロードすると、タスクが失敗する理由がわかりません。どんな助けでも大歓迎です。
編集:ここにスタックトレースがあります:
ファイル "/usr/lib/python2.6/imaplib.py"、643 行目、select typ、dat = self._simple_command(name, mailbox)
ファイル "/usr/lib/python2.6/imaplib.py"、1059 行目、_simple_command で self._command_complete(name, self._command(name, *args)) を返す
ファイル "/usr/lib/python2.6/imaplib.py"、889 行目、_command_complete typ、データ = self._get_tagged_response(tag)
ファイル "/usr/lib/python2.6/imaplib.py"、990 行目、_get_tagged_response self._get_response() 内
ファイル "/usr/lib/python2.6/imaplib.py"、907 行目、_get_response resp = self._get_line() 内
ファイル "/usr/lib/python2.6/imaplib.py"、1000 行目、_get_line 行 = self.readline()
ファイル「/usr/lib/python2.6/imaplib.py」、1170行目、readline char = self.sslobj.read(1)
ファイル "/usr/lib/python2.6/ssl.py"、136 行目、読み取りで self._sslobj.read(len) を返す
SSLError: [Errno 1] _ssl.c:1325: error:1408F10B:SSL ルーチン:SSL3_GET_RECORD:間違ったバージョン番号
編集:これは私が実行しようとしているタスクです。ここで、imap_parser は imaplib をラップし、電子メールをデータベースにロードするモジュールです。
--detach フラグを使用してタスクをデーモン化しない限り、タスクが実際にセロリを使用して実行されることに気付きました。タスクがデーモンとして実行された場合にのみ失敗する理由がわかりません。-u フラグと -g フラグを使用して同じユーザー ID とグループ ID を設定し、同じ umask を設定し、パスと作業ディレクトリがデーモンと非デーモン化バージョンの両方で同じであることを確認しましたが、タスクはまだ実行されません。セロリがデーモンとして実行されている場合のセロリ。
セロリの最新バージョン(0.9.4)を使用しています。
python - タスクを実行する前にカスタム初期化関数を呼び出すようにCeleryを設定するにはどうすればよいですか?
Djangoプロジェクトがあり、Celeryを使用してバックグラウンド処理用のタスクを送信しようとしています(http://ask.github.com/celery/introduction.html)。CeleryはDjangoとうまく統合されており、カスタムタスクを送信して結果を返すことができました。
唯一の問題は、デーモンプロセスでカスタム初期化を実行する正しい方法が見つからないことです。タスクの処理を開始する前に、大量のメモリをロードする高価な関数を呼び出す必要があり、その関数を毎回呼び出す余裕はありません。
誰かが以前にこの問題を抱えたことはありますか?Celeryのソースコードを変更せずに回避する方法はありますか?
ありがとう
python - RabbitMQ/Djangoを使用したCeleryがdelay/ready/etcでハングする-有用なログ情報がありません
だから私はceleryとrabbitmqをセットアップし、ユーザーを作成し、vhostをセットアップし、ユーザーをvhostにマップし、celeryデーモンを正常に実行しました(またはそう思います)
この場合、私はあまり独創性を感じていなかったので、「セロリ」のユーザーを作成しました。
セロリのドキュメント内で簡単な例の1つを実行しようとすると、次のようになります。
そこで、FAQをチェックして、他に何が起きているのか疑問に思いました。これはユーザー権限による一般的なバグであるとのことでした。そこで、それらをトリプルチェックし、何もせず、別の新しいユーザーを作成しましたが、まだ何もありません。からインポートDjangoBrokerConnection
しcarrot.connection
て情報を取得すると、セロリの設定と一致します。FAQには、ログファイルを確認するように記載されています。
私のrabbit.log
ファイルはこの状況ではあまり役に立ちません。単に次のように表示されます。
などなど。この時点で、私は自分の問題が他に何であるかについて途方に暮れています。Ubuntu Jauntyを実行していて、apt-getからRabbitMQをインストールしています。
助けてくれてありがとう。
message-queue - Rabbitmq または Gearman - ジョブ キューの選択
職場では、電子メールの送信、PDF の作成、一部のデータの処理などのためにジョブ サーバーを構築する必要があります。明らかに、ある種の汎用キュー システムを構築したいと考えています。私は Gearman に精通しており、それがまさに解決しようとしている問題であることを知っています。それは、労働者が仕事を取りに来るキューに仕事を入れることです。ただし、Rabbitmq について多くの言及があり、このシナリオでどのように使用されているかは不明です。
Rabbitmq は分散ジョブ システムを構築するための優れたフレームワークですか?
django - 起動時にセロリを自動的に実行することは可能ですか?
私はdjangoとceleryをベースにしたPythonサーバーを持っています。コンピューターが再起動するたびに、apache2が起動するため、サーバーは機能しますが、celeryを手動で再起動する必要があります(プロジェクトディレクトリに移動して「pythonmanage.pyceleryd」を実行します)。生産のための正しい解決策は何ですか?つまり、デーモンとしてセロリを開始する可能性はありますか?
ここhttp://github.com/ask/celery/tree/master/contrib/debian/init.d/apache2を開始するapache2スクリプトのように/etc/init.d/にあるはずの2つのスクリプトを見つけました。しかし、私はそれらを/etc/init.d/に置きましたが、何も変わらないことがわかりました。
django - django の Amazon Simple Queue サービスのような非同期メッセージ キューと処理
アプリケーションには、次のようなものを必要とする多くのアクティビティがあります。
- メール送信、ツイッター投稿
- 画像をいくつかのサイズにサムネイル化する
- 接続された関係を見つけるために cron を呼び出す
これらのタスクを行う良い方法は、操作が実行される非同期キューに書き込むことです。
Amazon Simple Queue サービスがローカルで提供するような機能を実装するために使用できる django アプリケーションは何ですか?
セロリに出会いました。正しいこと?他に、このようなものはありますか?
python - すべての Celery ワーカー間でグローバルにアクセス可能なオブジェクト / Django のメモリ キャッシュ
私はかなり標準的な Django+Rabbitmq+Celery のセットアップを行い、1 つの Celery タスクと 5 つのワーカーを使用しています。
タスクは、同じ(少し単純化した) 大きなファイル (~100MB) を多数のリモート PC に非同期でアップロードします。
すべてのタスク/ワーカーがその大きなファイルを個別にメモリにロードするため、大量のメモリを使用することを犠牲にして、すべてが正常に機能しています。
私がやりたいことは、すべてのタスクにアクセスできるある種のキャッシュを用意することです。つまり、ファイルを一度だけロードします。locmem に基づく Django キャッシングは完璧ですが、ドキュメントにあるように、「各プロセスには独自のプライベート キャッシュ インスタンスがあります」とあり、すべてのワーカーがこのキャッシュにアクセスできる必要があります。
#2129820で説明されているように Celery シグナルで遊んでみましたが、それは私が必要とするものではありません。
だから問題は、Celeryで何かグローバルなものを定義できる方法はありますか(dictに基づくクラスのように、ファイルまたはsmthをロードできる場所です)。または、この状況で使用できる Django のトリックはありますか?
ありがとう。
python - セロリのタスク/PeriodicTaskを削除します
セロリの通常のタスクまたはPeriodicTaskを削除するにはどうすればよいですか?