使用 Postgres 作为代理设置 Celery - 没有这样的传输 'db'
Setting up Celery with Postgres as broker - No such transport 'db'
我目前正在尝试将 postgres 设置为 Celery 的代理:
broker = "db+postgresql://guest:guest@postgres-localnet/test_db"
app = Celery('tasks', broker=broker)
@app.task
def add(x, y):
return x + y
当我尝试添加 message/task 时:
>>> import app.tasks as t
>>> t.add.delay(1,2)
我收到以下错误消息:
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'
根据文档 (http://docs.celeryproject.org/en/latest/userguide/configuration.html#database-url-examples),这看起来应该可行。
我哪里做错了?
从 celery 4.2 开始,您不能将数据库用作代理。根据文档,only four brokers are supported:
- redis
- rabbitmq
- 平方
- 动物园管理员
kombu级别的传输,可以参考this reference。
我目前正在尝试将 postgres 设置为 Celery 的代理:
broker = "db+postgresql://guest:guest@postgres-localnet/test_db"
app = Celery('tasks', broker=broker)
@app.task
def add(x, y):
return x + y
当我尝试添加 message/task 时:
>>> import app.tasks as t
>>> t.add.delay(1,2)
我收到以下错误消息:
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'
根据文档 (http://docs.celeryproject.org/en/latest/userguide/configuration.html#database-url-examples),这看起来应该可行。
我哪里做错了?
从 celery 4.2 开始,您不能将数据库用作代理。根据文档,only four brokers are supported:
- redis
- rabbitmq
- 平方
- 动物园管理员
kombu级别的传输,可以参考this reference。