python - lpush - redis hkeys
¿Cómo obtener un trabajo por ID en RQ python? (2)
Esto se debió a una regresión que ahora está arreglada, vea https://github.com/nvie/rq/issues/479 para más detalles.
Debe instalar desde la sucursal maestra de github para resolver esto hasta que se libere en PyPI.
Entonces, básicamente, quiero construir una aplicación de larga duración que use RQ en heroku. He visto esta pregunta Flask: pasar el trabajo del trabajador de fondo (rq, redis) pero no ayuda.
Esto es básicamente lo que estoy haciendo.
@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)
No hay nada sofisticado, así que cuando llegue la solicitud POST, pondrá en cola el trabajo y devolverá inmediatamente el ID de trabajo al usuario, y luego el usuario usará la clave para seguir sondeando el resultado. Sin embargo, parece que no puedo hacer que esto funcione ya que esta línea Job().fetch(job_id)
regresa
NoRedisConnectionException: Could not resolve a Redis connection.
Cualquier ayuda sería realmente apreciada.
Ya descubrí esto, en caso de que alguien esté interesado. Tiene que ser este en su lugar.
Job.fetch(job_id, connection=conn)