問題タブ [python-huey]
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.
django - Hueyタスクはdjangoビューから実行されていませんが、シェルから動作します
問題が発生し、何が問題なのか疑問に思っています。
問題
Web ビューから呼び出すと、Huey タスクが実行されません。ただし、同じ VM のシェル コマンドから呼び出すと、正常に動作します。タスクはhueyにうまく登録されています。問題のタスクはhandshake
.
- VM: Web、ビューの使用: 機能しない
- VM: Web、シェルの使用: 動作中
- VM: ワーカー、シェルの使用: 動作中
設定
docker でアプリケーションを実行しています。同じ redis と同じ postgre に接続する、まったく同じ設定で同じイメージの 2 つのインスタンスを実行します。両方のインスタンスが同じ Redis に接続されていることを確認しました。
2 つのインスタンスは次のとおりです。
web.1
: 通常のスレッド モードで gunicorn Web アプリケーションを実行しています。worker.1
: ランニングpython manage.py run_huey
設定
仕事
タスクが登録されていることを示す run_huey の出力を次に示します (わかりやすくするためにいくつかの行を削除しています)。
テスト 1: を呼び出す Web ページhandshake
Web ログの出力:
ワーカーログには何も記録されません。
テスト 2: handshake
Web が実行されている同じインスタンスから呼び出す Django シェル
ワーカー ログ:
それで、私は何が欠けていますか?タスクをロードするために App config にコードを追加する必要がありますか? インスタンスで実行しようとしrun_huey
ましたが、同じ問題が発生しました。web.1
したがって、環境ではなく、redis ではありません。Webがredisに接続していないことに関係があると思います。
できれば、助けてください。何が欠けているのかわかりません。
ありがとうアミット
python - Huey でパラメーターを使用して複数のタスクを実行するにはどうすればよいですか?
セロリと同じ設定にしました
機能
起動タスク
結果:
すべてが機能しますが、最後のタスクのみが機能します。
この起動方法が必要です。本番環境では、ラッパーでは、タスクはスレッドで起動されます。
誰かがアイデアを持っていますか?
python - コードからプロセス コンシューマーを開始し、シグナル コールバックを取得する
cpu バウンド タスクのコードからプロセス コンシューマーを開始するにはどうすればよいですか?
また、即時なしでシグナルコールバックを取得するにはどうすればよいですか? immediate=True で MemoryHuey を実行するとすべて正常に動作しますが、False に設定すると空のリストしか得られません。
問題:
異なる優先度で処理する必要があるエンドポイントがいくつかあります。プロセスはすべて CPU を集中的に使用するため、バックグラウンドに移動して、マルチプロセッシングを使用して処理する必要があります。Redis クラスターは、後でジョブ ストレージとして使用されます。
ありがとう:) PS:非同期を無視
編集: または、AWS EB のスーパーバイザーで実行する簡単なソリューションはありますか?
編集:私はデプロイにElasticBeanstalkを使用しています/スーパーバイザーで実行しますか?