celery是一个基于Python的分布式调度系统,文档在这 ,最近有个需求,想要动态的添加任务而不用重启celery服务,找了一圈没找到什么好办法(也有可能是文档没看仔细),所以只能自己实现囉
为celery...动态添加任务,首先我想到的是传递一个函数进去,让某个特定任务去执行这个传递过去的函数,就像这样
@app.task
def execute(func, *args, **kwargs):
return...func(*args, **kwargs)
很可惜,会出现这样的错误
kombu.exceptions.EncodeError: Object of type 'function' is not JSON...,就像这样
execute.apply_async(args=['task.all_task.aa'], eta=datetime(2017, 7, 9, 8, 12, 0))
简单实现一个任务重复调用的功能...,然后把任务添加到celery队列里,这里有个task_id有些问题,因为假设添加了每隔3s执行一个任务,
它的task_id默认会使用uuid生成,如果想要再移除这个任务就不太方便,自定task_id