【问题标题】:Celery received and deleted unknown message. Wrong destination?!? - 2 servers connected to same brokerCelery 收到并删除了未知消息。目的地错误?!? - 2台服务器连接到同一个代理
【发布时间】:2017-02-02 10:30:58
【问题描述】:

我被困住了。

我在不同的位置有 2 个 VPS(一个欧盟,一个北美)。我有时需要在 EU 服务器上执行我的 Celery 任务,有时在 NA 服务器上执行(因为网站会根据位置显示不同的信息)。

因此,在我的 Flask 应用程序中,我创建了两个不同的任务来做同样的事情:

@celery.task(bind=True, name='task_EU')
def task_EU(self, arg1, arg2, arg3, arg4):
    with app.app_context():                                  
        cust_module.handle(arg1, arg2, arg3, arg4)

@celery.task(bind=True, name='task_NA')
def task_NA(self, arg1, arg2, arg3, arg4):
    with app.app_context():
        cust_module.handle(arg1, arg2, arg3, arg4)

从管理面板执行操作时会调用这些任务。根据用户选择的内容,我希望在服务器 EU 或服务器 NA 上执行任务,所以我这样做了:

@app.route('/launch-new-project', methods=['POST'])
def launch_new_project():

    arg1 = request.form['arg1']
    arg2 = request.form['arg2']
    arg3 = request.form['arg3']
    arg4 = request.form['arg4']  # EU or NA

    # launch celery task
    if arg4 == 'NA':  # user selected 'NA' from drop-down menu
        task = task_NA.apply_async((arg1, arg2, arg3, arg4), queue='NA')
    else:
        task = task_EU.apply_async((arg1, arg2, arg3, arg4), queue='EU')

    return task.id, 202, {'location': url_for('taskstatus', task_id=task.id)}

在欧盟 VPS 上,我将像这样启动队列:

celery -A myapp.celery worker -Q EU --loglevel=INFO --concurrency=6

我的代理(我使用 redis)在同一个 VPS 上运行,所以连接它没有问题。

NA VPS 命令相同,也连接到 EU VPS 上的代理。

celery -A myapp.celery worker -Q NA --loglevel=INFO --concurrency=6

现在,当我进入管理面板,并在从下拉列表中选择 EU 的同时启动项目时 -> 没问题。任务根据需要启动。但是,当我选择 NA 时,我收到以下错误消息:

Received and deleted unknown message. Wrong destination?!?

然后我收到了消息的全部内容,这很神秘,但它基本上包含了我的论点。我不知道如何调试它,为什么它适用于欧盟而不是北美。

几天来一直坚持这一点,SO 上的解决方案没有帮助。请帮忙!

【问题讨论】:

    标签: python flask celery


    【解决方案1】:

    删除命令中的-Q 选项。即

    改变: celery -A myapp.celery worker -Q EU --loglevel=INFO --concurrency=6

    celery -A myapp.celery worker EU --loglevel=INFO --concurrency=6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多