Python全系列 教程
3567个小节阅读:5929k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Celery可通过task绑定到实例获取到task的上下文,这样我们可以在task运行时候获取到task的状态,记录相关日志等
代码如下:
xxxxxxxxxx
@shared_task(bind=True)
def mul(self, x, y):
logger.info('-mul'*10)
logger.info(self.name)
logger.info(dir(self))
return x * y
说明:
在装饰器中加入参数 bind=True
在task函数中的第一个参数设置为self
self对象是celery.app.task.Task的实例,可以用于实现重试等多种功能
xxxxxxxxxx
@shared_task(bind=True)
def mul(self, x, y):
try:
logger.info('-mul' * 10)
logger.info(f'{self.name}, id:{self.request.id}')
raise Exception
except Exception as e:
# 出错每4秒尝试一次,总共尝试4次
self.retry(exc=e, countdown=4, max_retries=4)
return x * y
实时效果反馈
1. 关于Celery绑定参数,说法错误的是?
A 绑定参数是把task的上下文对象,存放到函数第1个参数上
B 绑定的参数可以通过name获取当前运行的任务函数名
C 绑定的参数可以让任务重试指定次数
D 绑定参数是通过bind参数设置为False
答案
1=>D