0
例外が発生したときには、retry
(official doc)のタスクを実行します。セロリはretry
をself.retry(...)
の形で使用します。Celery send_taskと例外時に再試行
私はクラスなしの関数を持っているので、私はどのようにユーザ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
はありません。
どうすればよいですか?
PS:私はパルメーターとしてself
を追加しようとしましたが、タスクがリモートから初めて呼び出されたときにマッピングがないので、これは失敗します。