【问题标题】:Celery doesn't return results芹菜不返回结果
【发布时间】:2010-11-10 04:31:32
【问题描述】:

由于某种原因,每当我在 Celery 中创建和运行新任务时,返回结果都会出现问题。第一个任务完美返回,但对于所有后续任务,结果始终处于挂起状态。我检查了 Celery 日志,它得到了正确的结果,没有错误,但它无法返回它。

如果有帮助,我正在运行 rabbitmq 作为我的后端。

【问题讨论】:

  • 什么版本的 Celery?你用什么来存储结果? (CELERY_RESULT_BACKEND)
  • 2.2 版和 rabbitmq 是我的后端。
  • 等等。抱歉,这没有任何意义。我没有设置任何数据库,也没有更改任何配置设置。这是否意味着它将默认为 AMQP?

标签: python rabbitmq celery


【解决方案1】:

原来我只需要明确指定一个后端。

添加:

CELERY_RESULT_BACKEND = "amqp"

我的设置文件似乎可以解决所有问题。

【讨论】:

    【解决方案2】:

    即使我添加了“amqp”后端,我也会遇到同样的问题。

    这是我的 celery 配置文件:

    BROKER_HOST = "localhost"
    BROKER_PORT = 5672
    BROKER_USER = "guest"
    BROKER_PASSWORD = "guest"
    BROKER_VHOST = "/"
    
    CELERY_RESULT_BACKEND = "amqp"
    CELERY_AMQP_TASK_RESULT_EXPIRES = 18000  # 5 hours.
    CELERY_IMPORTS = ("test", )
    

    我的外壳第一次获取成功,第二次挂起。一段时间后,如果我再次调用该方法,它就会起作用。这种模式不断重复。

    >>> r = test.add.delay(4, 4)
    >>> r.get()
    8
    >>> r = test.add.delay(4, 4)
    >>> r.get()
    ^C <---------- it was hung here forever, I had to press ^C
    
    >>> r = test.add.delay(4, 4)
    >>> r.get()
    8
    

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      相关资源
      最近更新 更多