代码之家  ›  专栏  ›  技术社区  ›  Atma

芹菜不是简单的印刷品

  •  1
  • Atma  · 技术社区  · 7 年前

    我有一个芹菜的helloworld类型函数:

    from celery import Celery
    import time
    app = Celery('test_celery',
                 broker= 'amqp://celeryuser:pass@ip:5672/celeryvhost',
                 )
    
    @app.task
    def add(x, y):
        time.sleep(2)
        print('calculating something aaewsome --------------------')
        return x + y
    
    if __name__ == '__main__':
        result = add.delay(4, 4)
        print( result.get() )
    

    我运行命令以运行任务:

    celery -A test_celery worker --loglevel=info
    

    我得到输出:

    [tasks]
      . test_celery.add
    [2018-07-17 00:17:40,668: INFO/MainProcess] Connected to amqp://celeryuser:**@myip:5672/celeryvhost
    [2018-07-17 00:17:40,679: INFO/MainProcess] mingle: searching for neighbors
    [2018-07-17 00:17:41,705: INFO/MainProcess] mingle: sync with 1 nodes
    [2018-07-17 00:17:41,706: INFO/MainProcess] mingle: sync complete
    [2018-07-17 00:17:41,725: INFO/MainProcess] celery@www.mysite.com ready.
    

    在日志中显示:

    [2018-07-17 00:17:40,698: INFO/MainProcess] sync with celery@mysite.com
    

    但没有输出指纹。

    我做错什么了?

    2 回复  |  直到 7 年前
        1
  •  1
  •   JPG    7 年前

    你在任何地方都不叫芹菜任务,这就是为什么它不打印。

    步骤1 打开终端运行命令,
    celery -A test_celery worker --loglevel=info

    步骤2 打开另一个终端并导入芹菜任务,然后使用 .delay()

    截图
    一。芹菜命令运行 Celery command 2.调用芹菜任务 enter image description here

        2
  •  0
  •   rabbit    7 年前

    使用作为参数传递的结果后端初始化应用程序。例子

    app = Celery('tasks', backend='rpc://', broker='pyamqp://')