Eu não usei
rq
antes, mas vejo que um trabalho tem um .key
propriedade. Pode ser mais fácil armazenar esse hash em sua sessão. Então você pode usar o Job
.fetch
da classe método que irá chamar um .refresh()
e devolver o trabalho para você. Lendo o .result()
nesse ponto lhe daria o status atual do trabalho. Talvez assim (não testado):
from rq.job import Job
@app.route('/make/')
def make():
job = q.enqueue(do_something, 'argument')
session['job'] = job.key
return 'Done'
@app.route('/get/')
def get():
try:
job = Job()
job.fetch(session['job'])
out = str(job.result)
except:
out = 'No result yet'
return out