대기중인 redis 작업을 테스트하려고하지만 데이터가 meta
이면 작업과 작성자간에 전달되는 것 같지 않습니다. job_id가 일치하는 것처럼 보이므로 당황 스럽네요.redis 작업에 "메타"데이터가 저장되지 않습니까?
작업은 as per the documentation 다음과 같습니다 :
from rq import get_current_job
def do_test(word):
job = get_current_job()
print job.get_id()
job.meta['word'] = word
job.save()
print "saved: ", job.meta['word']
return True
rqworker
로그 인쇄이 작업은
14:32:32 *** Listening on default...
14:33:07 default: labeller.do_test('supercalafragelistic') (a6e2e579-df26-411a-b017-8788d621149f)
a6e2e579-df26-411a-b017-8788d621149f
saved: supercalafragelistic
14:33:07 Job OK, result = True
14:33:07 Result is kept for 500 seconds.
저장 한 후 작업 ID와 단어 어쩌면 신선한 눈은 내가 문제를 해결 도움이 될 수 있습니다 unittest에서 호출 :
class RedisQueueTestCase(unittest.TestCase):
"""
Requires running "rqworker" on the localhost cmdline
"""
def setUp(self):
use_connection()
self.q = Queue()
def test_enqueue(self):
job = self.q.enqueue(do_test, "supercalafragelistic")
while True:
print job.get_id(), job.get_status(), job.meta.get('word')
if job.is_finished:
print "Result: ", job.result, job.meta.get('word')
break
time.sleep(0.25)
그리고 이 로그에 동일한 job_id와 올바른 결과가 표시되지만 meta
변수 word
은 절대로 채워지지 않습니다.
Testing started at 2:33 PM ...
a6e2e579-df26-411a-b017-8788d621149f queued None
a6e2e579-df26-411a-b017-8788d621149f finished None
Result: True None
Process finished with exit code 0
나는 로그
started
에서 작업을 볼 수있는 기회를 갖도록 긴 지연을 추가하려했으나 (이 완료되면 경우 메타에 클리어) 상태가 완료되지하지만 어떤 차이를하지 않았다.
나는 무엇을 놓쳤는가?
+1. 나는 job.meta.save()에 혼란스러워했다. 이 질문에 대답 해주십시오 : p –