【发布时间】:2012-07-25 05:02:01
【问题描述】:
我在 Celery 中有一个任务,它在正常运行时可能会运行 10,000 秒。然而,我的所有其他任务都应该在不到一秒的时间内完成。如何在不更改短期运行任务的时间限制的情况下为故意长时间运行的任务设置时间限制?
【问题讨论】:
我在 Celery 中有一个任务,它在正常运行时可能会运行 10,000 秒。然而,我的所有其他任务都应该在不到一秒的时间内完成。如何在不更改短期运行任务的时间限制的情况下为故意长时间运行的任务设置时间限制?
【问题讨论】:
【讨论】:
CELERY_ANNOTATIONS = {'module.mytask': {'time_limit': 20.0}}
timeout/soft_timeout 的参数 apply_async 也已更改为 time_limit/soft_time_limit。这里介绍了相关的变化——github.com/celery/celery/commit/…
这是一个使用 soft_time_limit=10000
的特定任务和 Celery 3.1.23 的装饰器示例@task(bind=True, default_retry_delay=30, max_retries=3, soft_time_limit=10000)
def process_task(self, task_instance):
"""Task processing."""
pass
【讨论】:
@task(soft_time_limit=10, time_limit=15)一样将time_limit分配在一起