我的redis很快就会被称为 celery-meta-data-some-random-id-string ,包含任务本身及其结果。我想扔掉那些,所以我加了一句 'ignore_result' = True 对于那些我不在乎结果的任务。我的任务定义为: @shared_task(name='my.name', ignore_result = True) def mytask(foo,bar): //do stuff return 我尝试将默认...
丢弃结果配置如下: CELERY_IGNORE_RESULT = True 为什么会推荐丢弃结果呢? 在压测使用rabbitmq对celery时发现,每次执行单个的简单加减任务,会耗时0.1秒左右(慢哭)。 完成任务至7000时,rabbitmq出问题了,日志显示: Recovering 7008 queues, avilable file handles: 4764. Please increase mas open file handles limit ...
self.ignore_result = ignore_result # 要执行的函数 self.fun = self._get_fun_or_weakref(fun=fun, weak=weak) # 注意位置参数是元祖,这样才可以在call里叠加 self.args = args or () # 关键字参数是字典 self.kwargs = kwargs or {} # ready,failed,cancelled 三个状态,默认都是false self.ready...
通常不会,因为ignore_result是任务的一个属性,只有工作进程才会使用它(用来决定是否发回结果)。
Task.ignore_result : 不存储任务状态。默认False; Task.store_errors_even_if_ignored : 如果True,即使任务配置为忽略结果,也会存储错误。 Task.serializer : 标识要使用的默认序列化方法的字符串。 Task.compression : 标识要使用的默认压缩方案的字符串。默认为task_compression设置。
1.确保任务不启用忽略结果 ignore_result。 Enabling this option will force the worker to skip updating states. 1.1.启用该选项会强制工作机忽略更新状态。 Make sure the task_ignore_result setting isn’t enabled. 2.确保任务忽略结果 task_ignore_result 不被启用。
如果你不在意任务的返回结果,可以设置ignore_result选项,因为存储结果耗费时间和资源。你还可以可以通过task_ignore_result设置全局忽略任务结果。 @app.task(ignore_result=True)defmy_task():something() 避免启动同步子任务 让一个任务等待另外一个任务的返回结果是很低效的,并且如果工作单元池被耗尽的话这将会导致...
self.ignore_result = ignore_result # 要执行的函数 self.fun = self._get_fun_or_weakref(fun=fun, weak=weak) # 注意位置参数是元祖,这样才可以在call里叠加 self.args = args or # 关键字参数是字典 self.kwargs = kwargs or {} # ready,failed,cancelled 三个状态,默认都是false ...
@app.task(ignore_result=True) def my_task(): something() 避免启动同步子任务 让一个任务等待另外一个任务的返回结果是很低效的,并且如果工作单元池被耗尽的话这将会导致死锁。 # 话例子 @app.task def update_page_info(url): page = fetch_page.delay(url).get() ...
Task.ignore_result:不存储任务状态。默认False; Task.store_errors_even_if_ignored:如果True,即使任务配置为忽略结果,也会存储错误。 Task.serializer:标识要使用的默认序列化方法的字符串。 Task.compression:标识要使用的默认压缩方案的字符串。默认为task_compression设置。