을 얻는 방법을 나는 셀러리 비트를 사용하여 주기적 작업을 설정합니다. 작업이 실행되고 콘솔에서 결과를 볼 수 있습니다. 작업에 의해 던져진 결과를 다시 생각하는 파이썬 스크립트를 갖고 싶습니다.셀러리 작업 ID
이 같은 그것을 할 수 :
#client.py
from cfg_celery import app
task_id = '337fef7e-68a6-47b3-a16f-1015be50b0bc'
try:
x = app.AsyncResult(id)
print(x.get())
except:
print('some error')
을 어쨌든, 당신이 볼 수 있듯이,이 테스트를 위해 나는 셀러리 비트 콘솔 (그렇게 말하는)에 던져 task_id
을 복사하고 그것을 하드 코딩했다 내 스크립트. 분명히 이것은 실제 생산에서 작동하지 않을 것입니다. 나는 이런 식으로 읽을 수
#cfg_celery.py
app = Celery('celery_config',
broker='redis://localhost:6379/0',
include=['taskos'],
backend = 'redis'
)
app.conf.beat_schedule = {
'something': {
'task': 'tasks.add',
'schedule': 10.0,
'args': (16, 54),
'options' : {'task_id':"my_custom_id"},
}
}
이 방법 :
#client.py
from cfg_celery import app
task_id = 'my_custom_id'
try:
x = app.AsyncResult(id)
print(x.get())
except:
print('some error')
이 방법의 문제는 내가 이전을 잃게
나는 그것이 셀러리 설정 파일에 task_id
설정 해킹 결과 (client.py
전화 이전).
나는 셀러리 백엔드에서 task_id
's의 목록을 읽을 수있는 몇 가지 방법이 있나요? 둘 이상의 주기적 작업이있는 경우 각각의 주기적 작업에서 task_id
의 목록을 얻을 수 있습니까? 이렇게하려면 app.tasks.key()
을 사용할 수 있습니까?
PD : 내가 잘못 몇 가지 용어를 사용하는 경우 - 영어 - 네이티브 플러스 셀러리에 새로운 것이 아니다, 좋은.
나는 (내가 다른 파이썬 인스턴스로부터 결과를 얻고 싶다) 나는 값을 저장하고 검색하기 위해 redis 함수를 사용해야한다는 결론에 도달했다. 내가 zadd를 사용하여 결과를 redis에 쓰고 'client.py'에 zrange를 사용하여 검색합니다. –