問題タブ [python-rq]

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 に答える
2226 参照

python - PythonでRQタイムアウトを正しくキャッチして処理するには?

RQジョブのタイムアウトをキャッチして、タイムアウト後に再キューイングできるようにするための良い方法を見つけようとしています。

基本的に、正しい解決策は、タイムアウトしたジョブを再キューイングする方法 (たとえば、ワーカー内の例外ハンドラーなど) を提供します。また、ジョブがキューに戻る場合も、それfailedは良い答えです。

どうもありがとう!どんな助けでも大歓迎です!

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

python - Python RQ ジョブの SyntaxWarning を無効にするには?

任意のプロパティの使用に辞書を使用することについて、 RQが (コンソールに) 警告メッセージを表示することを回避しようとしています。meta指定どおりに使用しており、警告が引き続き表示されます。

表示される警告は次のとおりです。

基本的に、通常のデバッグ アクティビティに干渉するため、かなり面倒です。

これを無効にする方法についてのアイデアはありますか?

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

python - python-rqを使用してリモートサーバーで長いタスクを実行する

実行に時間がかかるコード (2 ~ 3 日) を書きましたが、それをサーバーにプッシュしてそこで実行したいと考えています。コードには、相互に作用するクラスと関数が豊富に含まれていますが、最終的にはコード全体の実行が単一の関数 (test2) を介して行われ、それが機能します。私にとっての解決策はタスクキューである可能性があり、同時に複数のタスクを実行する必要がないため、RQ が私のニーズに合う可能性があることがわかりました。

リモートサーバーに Reddis をセットアップしました。デーモンモードで実行します。私は test2 関数をキューに入れるだけの簡単なモジュールを書きました。

次に、問題が発生しました: python-rq ドキュメント Web ページ ( http://python-rq.org/docs/workers/ ) で、説明されているワーカーを起動する方法は実行することです

シェルから。しかし、このワーカーはデーモンとして起動しないため、アプリが ssh 経由でセットアップされているこのリモート サーバーに接続しているときに、ssh 接続がダウンするとワーカーもダウンし、これは私が望む動作ではありません。持つため。コードの実行中に 2 ~ 3 日間 ssh 接続を維持すると、私の場合は python-rq を使用する以外のロジック全体が拒否されます。この問題を回避する方法はありますか? おそらく、デーモン化するシェルからではなく、python-rq ワーカーを起動する必要がありますか?

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

python - AttributeError: 型オブジェクト 'YourClassHere' には属性 'rsplit' がありません

django-rqのdjangoバインディングを使用してpython-rq、PDFを非同期的に生成しようとしています。クラスTemplateProcesserは 2 つの引数で初期化され、関数で PDF を自動的に生成し__init__ます。django-rqこれは、外部では同期的に正常に動作しますが、次のdjango-rqエラーで失敗します。

エラー:

この呼び出しから:

にインスタンス化されていないクラスを正しく含める方法についてのアイデアはありdjango-rqますか?

クラス:

スタックトレース:

metaperture の回答後のトレースバック:

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

python - results_ttl=0 の場合でも Redis がいっぱいになるのはなぜですか?

質問: ジョブの結果がすぐに破棄されると、redis がいっぱいになるのはなぜですか?

redis をキューとして使用して PDF を非同期的に作成し、結果をデータベースに保存しています。保存されているため、後でオブジェクトにアクセスする必要がないため、処理後に結果を Redis に保存しておく必要はありません。

結果が redis にとどまらないようにするために、次のように設定しTTLました0

問題は、redis ワーカーがジョブの有効期限がすぐに切れると言っていることです。

Redis はまだいっぱいになり、次のようにスローします。

ジョブの結果がまだ保存されていない場合に redis がいっぱいにならないように、redis / django-rq に設定する必要がある別のパラメーターはありますか?


アップデート:

この投稿に続いて、redis でジョブが失敗したためにメモリがいっぱいになる可能性があると思います。

このコード スニペットの使用:

以下は、redis のキーのダンプのペースト ビンです。

http://pastebin.com/Bc4bRyRR

ここに投稿するには実用的であるには長すぎます。そのサイズは私の理論を支持しているようです。しかし、使用:

私が期待するようにredisをクリアしません。redis でキーのより正確なダンプを取得するにはどうすればよいですか? ジョブを正しくクリアしていますか?