首页 > 解决方案 > Setting up Celery with Postgres as broker - No such transport 'db'

问题描述

I am currently trying to set up postgres as a broker to Celery:

broker = "db+postgresql://guest:guest@postgres-localnet/test_db"
app = Celery('tasks', broker=broker)

@app.task
def add(x, y):
    return x + y

When I try to add a message/task:

>>> import app.tasks as t
>>> t.add.delay(1,2)

I get the following error message:

  File "/usr/local/lib/python3.6/site-packages/kombu/transport/__init__.py", line 64, in resolve_transport
    raise KeyError('No such transport: {0}'.format(transport))
KeyError: 'No such transport: db'

According to the docs (http://docs.celeryproject.org/en/latest/userguide/configuration.html#database-url-examples), it looks like this should work.

What am I doing incorrectly here?

标签: postgresqlcelery

解决方案


从 celery 4.2 开始,您不能将数据库用作代理。根据文档,仅支持四个代理

  • 雷迪斯
  • 兔子MQ
  • 平方
  • 动物园管理员

对于 kombu 级别的传输,您可以查阅此参考


推荐阅读