gpt4 book ai didi

python - celery 中 bind = True 关键字的含义是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:21:41 26 4
gpt4 key购买 nike

下面celery代码中的bind=True是什么意思?何时使用,何时不使用?

@app.task(bind=True)
def send_twitter_status(self, oauth, tweet):
try:
twitter = Twitter(oauth)
twitter.update_status(tweet)
except (Twitter.FailWhaleError, Twitter.LoginError) as exc:
raise self.retry(exc=exc)

最佳答案

只是对其他答案的一小部分补充。如前所述,bound tasks有权访问任务实例。需要这样做的一个用例是重试:

@celery.task(bind=True, max_retries=5)
def retrying(self):
try:
return 1/0
except Exception:
self.retry(countdown=5)

另一个用例是当您想要定义 custom states 时为您的任务并能够在任务执行期间设置它:

@celery.task(bind=True)
def show_progress(self, n):
for i in range(n):
self.update_state(state='PROGRESS', meta={'current': i, 'total': n})

关于python - celery 中 bind = True 关键字的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54899320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com