問題タブ [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 に答える
1513 参照

python-2.7 - python-rq ワーカーが自動的に閉じます

python-rq を実装してドメインをキューに渡し、Beautiful Soup を使用してスクレイピングします。だから私は仕事を成し遂げるために複数の労働者を走らせています。現在 22 個のワーカーを開始し、22 個のワーカーすべてが rq ダッシュボードに登録されています。しかし、しばらくするとワーカーが自動的に停止し、ダッシュボードに表示されなくなります。しかし、webmin では、すべてのワーカーが実行中として表示されます。クロールの速度も低下しました。つまり、ワーカーは実行されていません。スーパーバイザーとnohupを使用してワーカーを実行してみました。どちらの場合も、ワーカーは自動的に停止します。

これの理由は何ですか?なぜ労働者は自然に止まるのですか?また、1 つのサーバーで開始できるワーカーの数は?

それに伴い、ワーカーが rq ダッシュボードから登録解除されるたびに、失敗数が増加します。なぜだか分からない?

これで私を助けてください。ありがとうございました

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

python-3.x - python-rq ジョブのタイムアウトなし

ワーカーに「最大」= inf タイムアウトを指定する方法はありますか? 長時間実行されるタスクがいくつかあり、タイムアウトが原因で何かが失敗した場合は、ワーカー内で内部的に処理します。

これを cli で指定できますか?

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

python - python-rq を使用して 1 分あたり 30 タスクのみを実行する構成

分散型クロール メカニズムを構築していて、サーバーに対して 1 分間に 30 件を超えるリクエストが行われないようにしたいと考えています。エンキューされた各タスクがリクエストを行います。

すべてのタスクは redis でキューに入れられ、python-rqによって提供される API を使用してキューから取り出されます。

アプローチは、送信されたリクエストの数を保持するために、毎分有効期限が切れるキーを redis に設定することです。

作業が利用可能になるたびに、送信されたリクエストが 30 未満かどうかを確認します - いいえの場合は、1 分間だけスリープします - はいの場合は、作業します


以下は私のカスタムワーカーです:

これは、ワーカーが通常の速度で数にもかかわらずタスクを実行し、設定されているキーの値が 3 を超えて更新されないため、機能していないようです。

自分の思考プロセスに欠陥があると強く感じています。ここで何が間違っていますか?

ありがとう

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

python - アプリケーションの起動時に python-rq ワーカー プロセスを実行する

Heroku で Django アプリをホストしていましたが、いくつかの制限があったため、Heroku からクラウドベースのサーバーに移行しました。Python でのバックグラウンド タスクの実行に関するこのチュートリアルに従いました。python worker.pyワーカー プロセスを開始するために手動で実行する必要があることを除いて、すべて正常に動作しています。

Heroku では、アプリの起動時に Procfile を使用してプロセスを実行できますが、現在は ubuntu 14.04 を実行しているクラウドベースのサーバーにいます。では、Procfile に代わるものは何ですか?

worker.py

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

python - コードから失敗したキュー (rq) のトレースバックを読み取る方法は?

失敗したキューに失敗したジョブが 1 つあります。

@Byron Ruthの回答によると、次の方法でその番号を取得できます。

rq-dashboard にトレースバックが表示されます。

Python コードを使用してこのトレースバックを取得するにはどうすればよいですか? それが不可能な場合は、プログラムによる解決策が受け入れられます (例: Bash 経由)。

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

python - Python-RQ / Redis からキューを削除する

Python RQ (Redis がサポート) を使用して、一連のワーカー プロセスにタスクをフィードしています。

ジョブをキューに追加するときに誤ってタプルを送信してしまったため、次のようなキューが作成されました。

('low',)キューを削除する方法がわかりません。また、キューはその名前が原因でいくつかの問題を引き起こしているようです (たとえば、ページの読み込みが拒否されるため、rq-dashboard でキューを表示またはクリアできませんでした)。

ここでいくつかの議論があります: RQ - Empty & Delete Queuesですが、それはキューを空にすることだけをカバーしています。Python 内から問題なくキューを空にすることができますが、実際に Redis サーバーからキューを削除することはできないようです。

RQ のドキュメントには、不要なキューを削除するための情報が記載されていないようです。

そのキューを永遠に持ち歩くのではなく、実際にそのキューを削除したい(空にするだけではない)。