0
예외가 발생하면 retry
(official doc) 작업을 원합니다. 셀러리는 self.retry(...)
Celery send_task 및 예외시 재시도
형태로 retry
을 사용하여 이것을 허용합니다. 이제 사용자가 어떤 종류의 함수도 가지고 있지 않기 때문에 self
을 어떻게 사용할 수 있는지 알 수 없습니다.
내 코드는이
.. imports ...
app = Celery('elasticcelery')
@app.task(name='rm_doc')
def rm_doc(schema_id, id):
es = Elasticsearch(es_ip)
try:
res = es.delete(schema_id, 'doc', id)
except NotFoundError as e:
<here goes the retry>
이며이 방법으로 다른 서비스에서라고 : 지금
app_celery = Celery('celeryelastic')
app_celery.config_from_object('django.conf:settings')
app_celery.send_task('rm_doc', kwargs={"schema_id": schema_id, "id": document_id},)
, 나는 self.retry
를 추가해야하지만 내 방법에는 self
가 없습니다.
어떻게해야합니까?
추신 : 나는 파머로 self
을 추가하려고 시도했지만, 리모컨에서 작업을 처음 호출 할 때 매핑이 없으므로 실패합니다.