というわけで、基本的にはherokuでRQを使ったロングポーリングアプリを作りたいと思っています。私はこの質問Flaskを見てきました:バックグラウンドワーカージョブ(rq、redis)を渡しますが、役に立ちません。
これは基本的に私がやっていることです。
@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 リクエストが来ると、ジョブをキューに入れ、すぐに job_id をユーザーに返し、ユーザーはキーを使用して結果をポーリングし続けます。Job().fetch(job_id)
ただし、この行が返されるため、これを機能させることができないようです
NoRedisConnectionException: Could not resolve a Redis connection.
どんな助けでも本当に感謝しています。