基本的に私はherokuでRQを使っている長いポーリングアプリケーションを作りたいと思っています。私はこの質問Flask: passing around background worker job (rq, redis)を見てきましたが、それは助けにはなりません。RQ pythonでidを使ってジョブを取得するには?
これは基本的に私がやっていることです。
@app.route('/do_something', methods=['POST'])
def get_keywords():
data_json = json.loads(request.data)
text = urllib.unquote(data_json["sentence"])
job = q.enqueue(keyword_extraction.extract, text)
return job.key
@app.route('/do_something/<job_id>', methods=['GET'])
def get_keywords_results(job_id):
job = Job().fetch(job_id)
if(not job.is_finished):
return "Not yet", 202
else:
return str(job.result)
何も空想ではありませんので、POSTリクエストが来るとき、それは仕事をキューに入れ、immidiatelyユーザーに戻ってJOB_ID戻り、その後、ユーザーは、ポーリングに結果を維持するためにキーを使用しますします。しかし、私はこれが、このラインとしてJob().fetch(job_id)
戻り
NoRedisConnectionException: Could not resolve a Redis connection.
を動作させるように見えることはできませんすべてのヘルプは本当にいただければ幸いです。
赤ちゃんをインストールして正しく設定しましたか? – CraigKerstiens
私は自分のlocalhostでそれをテストしました。ジョブがエンキューされるとうまく動作します。しかし、私はそれを取得しようとするとジョブ()。フェッチ(job_id)それは私のエラーを提供します。 – toy