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

python - redis python3 rqワーカーがutcparse started_atの日付不在で失敗する

Redis version=6.0.9( Ubuntu 18.04 マシンに) redis をインストールして実行しており、この簡単なガイドに従ってジョブをスケジュールしましたが、 redis ワーカーrqを起動するとすぐに次のエラーが表示されます。app.py

ここにtasks.py

ここにapp.py

ここで私が使用したコマンド:

2 番目のウィンドウを開いて実行するrq workerと、この投稿の最初の部分で失敗しました。

私はググってみましたが、この投稿は彼が彼のWindows OSを更新したとだけ言っていました.

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

python - Python フラスコ アプリ コンテキストを rq ジョブに渡す適切な方法

効果的にニュース検索アプリであるフラスコ アプリを作成しました。現在、多くのルートを提供し、ドキュメントの検索とインデックス作成のために Elasticsearch と統合し、Flask-SQLAlchemy を介して mySQL DB と統合しています。

アプリは、ログインしたユーザーがドキュメント/記事を検索できるようにする必要があります。その時点で、elasticsearch がトリガーされ、結果がユーザーに返されます。これはすべて機能します。

現在、RQ と Ajax を使用してバックグラウンドで非同期検索を開始する機能を構築しています。ここで、検索 (いくつかの API の呼び出し)、DB の更新、および ES インデックスの更新を行うタスクをキューに入れるために、RQ が必要です。この機能はすべて、私の Flask アプリ (検索 API 呼び出し、構成、DB ORM、ES インターフェイス) 内で既に構築されているため、理想的にはそれらすべてを再利用したいと考えています。

既存の DB/ES セットアップを再利用できるように、新しいアプリケーション インスタンスを作成しようとするモジュールを呼び出す RQ セットアップがありますが、コードが呼び出されると RQ からエラーが発生します。

アプリケーションの構造は次のとおりです。

私のviews.pyファイルでは、次の行でタスクをキューに入れようとしています:

これにより、フラスコ側で問題は発生しませんが、RQ ワーカーで前述のエラーがスローされます

news_functions.py ファイルで、エラーをスローしているように見える次のインポートとセットアップでモデルなどを再利用できるように、アプリのインスタンスを作成しようとしました:

問題は、アプリ フォルダー自体から create_app をインポートしようとしていることにあると思いますが、他のオプションが何であるかわかりません。フォルダーを上に移動すると、アプリの範囲外であるため、RQ ジョブはタスクをキューに入れることができません。

これに正しい方法でアプローチしているかどうかはわかりませんが、アプリケーション構成、flask-sqlalchemy、es セットアップを効果的に再利用して、この追加タスクをバックグラウンドで実行できるようにしたいと考えています。

うまくいけば、意味があり、誰かが助けることができます!

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

python - Redis Queue を使用した環境変数の設定

私は RQ が初めてで、フラスコ アプリ内に実装しようとしています。私のルートの 1 つの主な目標は、データベースから値を更新することです。ワーカーをセットアップするには、次を使用しています。

次に、更新ルートは更新ジョブをキューに入れます

最後に、ワーカーは更新関数を実行します

update_task 関数を次のような単純なものに切り替えると、ワーカーのセットアップが (ほぼ) 機能することがわかります。

できます。ただし、実際の関数では、環境変数が定義されていないという問題に遭遇し続けます。これは、実際の更新を実行すると、変数が None または同様のものであるという例外が発生するためです。

RQ内で環境変数を処理する方法を知っている人はいますか? 構成ファイルのような場所で再度宣言する必要がありますか?