"""Dramatiq 任务队列配置(broker 选择 + Django 集成)。 - 生产 / 开发默认:RedisBroker(REDIS_URL,默认指向内网 192.168.5.7:6379) - 测试环境:通过环境变量 TASK_BROKER=stub 切换 StubBroker(进程内、可断言) - dramatiq-crontab 在 setup 模块导入后接管周期调度 """ import os def get_broker(): broker_kind = os.environ.get("TASK_BROKER", "redis") if broker_kind == "stub": import dramatiq from dramatiq.brokers.stub import StubBroker broker = StubBroker(middleware=[ dramatiq.middleware.AgeLimit(), dramatiq.middleware.TimeLimit(), dramatiq.middleware.Callbacks(), dramatiq.middleware.Retries(), ]) dramatiq.set_broker(broker) return broker import dramatiq from dramatiq.brokers.redis import RedisBroker redis_url = os.environ.get( "REDIS_URL", "redis://192.168.5.7:6379/2", ) broker = RedisBroker(url=redis_url) dramatiq.set_broker(broker) return broker broker = get_broker()