Skip to content

Commit 90588eb

Browse files
authored
Add the celery rabbitmq vhost config (#894)
1 parent 00bc02f commit 90588eb

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

backend/app/task/celery.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,20 @@ def init_celery() -> celery.Celery:
2727
celery.app.trace.build_tracer = celery_aio_pool.build_async_tracer
2828
celery.app.trace.reset_worker_optimizations()
2929

30+
broker_url = f'amqp://{settings.CELERY_RABBITMQ_USERNAME}:{settings.CELERY_RABBITMQ_PASSWORD}@{settings.CELERY_RABBITMQ_HOST}:{settings.CELERY_RABBITMQ_PORT}/{settings.CELERY_RABBITMQ_VHOST}'
31+
if settings.CELERY_BROKER == 'redis':
32+
broker_url = f'redis://:{settings.REDIS_PASSWORD}@{settings.REDIS_HOST}:{settings.REDIS_PORT}/{settings.CELERY_BROKER_REDIS_DATABASE}'
33+
34+
result_backend = f'db+postgresql+psycopg://{settings.DATABASE_USER}:{settings.DATABASE_PASSWORD}@{settings.DATABASE_HOST}:{settings.DATABASE_PORT}/{settings.DATABASE_SCHEMA}'
35+
if settings.DATABASE_TYPE == 'mysql':
36+
result_backend = result_backend.replace('postgresql+psycopg', 'mysql+pymysql')
37+
3038
# https://docs.celeryq.dev/en/stable/userguide/configuration.html
3139
app = celery.Celery(
3240
'fba_celery',
33-
broker_url=f'redis://:{settings.REDIS_PASSWORD}@{settings.REDIS_HOST}:{settings.REDIS_PORT}/{settings.CELERY_BROKER_REDIS_DATABASE}'
34-
if settings.CELERY_BROKER == 'redis'
35-
else f'amqp://{settings.CELERY_RABBITMQ_USERNAME}:{settings.CELERY_RABBITMQ_PASSWORD}@{settings.CELERY_RABBITMQ_HOST}:{settings.CELERY_RABBITMQ_PORT}',
41+
broker_url=broker_url,
3642
broker_connection_retry_on_startup=True,
37-
result_backend=f'db+{settings.DATABASE_TYPE}+{"pymysql" if settings.DATABASE_TYPE == "mysql" else "psycopg"}'
38-
f'://{settings.DATABASE_USER}:{settings.DATABASE_PASSWORD}@{settings.DATABASE_HOST}:{settings.DATABASE_PORT}/{settings.DATABASE_SCHEMA}',
43+
result_backend=result_backend,
3944
result_extended=True,
4045
database_engine_options={'echo': settings.DATABASE_ECHO},
4146
# result_expires=0,

backend/core/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ class Settings(BaseSettings):
210210

211211
# 基础配置
212212
CELERY_BROKER: Literal['rabbitmq', 'redis'] = 'redis'
213+
CELERY_RABBITMQ_VHOST: str = ''
213214
CELERY_REDIS_PREFIX: str = 'fba:celery'
214215
CELERY_TASK_MAX_RETRIES: int = 5
215216

0 commit comments

Comments
 (0)