【问题标题】:Django-q: WARNING reincarnated worker Process-1:1 after timeoutDjango-q:警告在超时后重生的工人 Process-1:1
【发布时间】:2021-05-10 08:45:25
【问题描述】:

我已经安装并配置了 Django-Q 1.3.5(在带有 Redis 3.5.3 和 Python 3.8.5 的 Django 3.2 上)。 这是我的集群配置:

# redis defaults
Q_CLUSTER = {
    'name': 'my_broker',
    'workers': 4,
    'recycle': 500,
    'timeout': 60,
    'retry': 65,
    'compress': True,
    'save_limit': 250,
    'queue_limit': 500,
    'cpu_affinity': 1,
    'redis': {
        'host': 'localhost',
        'port': 6379,
        'db': 0,
        'password': None,
        'socket_timeout': None,
        'charset': 'utf-8',
        'errors': 'strict',
        'unix_socket_path': None
    }
}

我适当地选择了timeout:60retry:65 来解释我的问题。 我创建了这个简单的函数来通过管理员计划任务调用:

def test_timeout_task():
    time.sleep(61)
    return "Result of task"

这是我的“计划任务页面”(localhost:8000/admin/django_q/schedule/)

ID Name Func Success
1 test timeout mymodel.tasks.test_timeout_task ?

当我运行此任务时,我收到以下警告:

10:18:21 [Q] INFO Process-1 created a task from schedule [test timeout]
10:19:22 [Q] WARNING reincarnated worker Process-1:1 after timeout
10:19:22 [Q] INFO Process-1:7 ready for work at 68301

任务不再执行。

所以,我的问题是:有没有办法正确处理一个不可预测的任务?

【问题讨论】:

    标签: django redis django-q django-redis


    【解决方案1】:

    您可以将超时设置为: 'timeout': None 它应该可以不间断地处理您的任务。

    【讨论】:

      猜你喜欢
      • 2021-03-26
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多