默认启动# 任务路由,为任务分配不同的队列(可理解为分组)# 方案1# main.*,表示匹配所有 main.开头的任务,匹配支持正则表达式# {'queue': 'celery'},中,celery 表示队列名称celery.conf.update(task_routes={'main.*': {'queue':'celery'},'universities:*': {'queue':'universities'},'university:*': ...
task_default_routing_key='task.default' task_queue是一个队列实例的列表。如果你没有为一个 key 设置消息交换器或者交换器类型,这些信息将从task_default_exchange和task_default_exchange_type配置中获取。 路由一个任务到feed_tasks队列,你可以在task_routes配置种添加一个项: 1 2 3 4 5 6 task_routes={ ...
Celery 支持 AMQP 提供的所有路由工具,但它也支持将消息发送到指定队列的简单路由。 task_routes设置使您能够按名称路由任务,并将所有内容集中在一个位置: app.conf.update( task_routes = { 'proj.tasks.add': {'queue': 'hipri'}, }, ) 1. 2. 3. 4. 5. 您还可以在运行时指定队列,方法是指定apply...
为了路由任务到feed_tasks 队列,你可以在task_routes 设置中添加一个容器: 代码语言:javascript 复制 task_routes={‘feeds.tasks.import_feed’:{‘queue’:‘feed_tasks’,‘routing_key’:‘feed.import’,},} 你也可以给Task.apply_async()或者send_task()使用routing_key参数覆盖这个配置: 代码语言:text ...
我们已经定义了三个队列,现在我们想将操作视频和操作照片的task分别路由到特定的队列。 4、指定路由 CELERY_ROUTES = ({'tasks.image_compress': { 'queue': 'images', 'routing_key': 'media.image' }},{'tasks.video_upload': { 'queue': 'videos', ...
其他所有的 task 都走默认的队列,default_queue。 我们可以如下配置: app.conf.task_queues=(Queue('queue_1'),Queue('queue_2'),Queue('default_queue'),)app.conf.task_routes={'polls.tasks.*':{'queue':'queue_1',},'blog.tasks.add':{'queue':'queue_1',},'blog.tasks.minus':{'queue':...
#为django_celery_results存储Celery任务执行结果设置后台# 格式为:db+scheme://user:password@host:port/dbname# 支持数据库django-db和缓存django-cache存储任务状态及结果CELERY_RESULT_BACKEND="django-db"# celery内容等消息的格式设置,默认jsonCELERY_ACCEPT_CONTENT=['application/json',]CELERY_TASK_SERIALIZER='...
3、将 task 指定到队列 queue 消费 如果我们想某些函数使用指定的 queue,我们可以使用 task_routes 配置项来操作。 现在我们有两个 application,blog 和 polls,这两个 application 下都有各自的 tasks,文件的内容如下: # blog/tasks.pyfromceleryimportshared_task ...
4.2 CELERY_ROUTES CELERY_ROUTES的作用是,给任务分配queue和routing_key,然后根据给worker分配的queue值执行相应的任务。 如果在celeryconfig.py中没有配置该项,那么也可以这么写, 启动worker: celery -A celery_app worker -l info -Q app_task1 -P eventlet 然后在生产任务时,主动传入queue和routing_key...
下面是两个配置示例:将行为异常的任务路由到专用队列的方式 代码语言:javascript 复制 task_routes={'tasks.add':'low-priority',} 对任务进行速率限制 代码语言:javascript 复制 task_annotations={'tasks.add':{'rate_limit':'10/m'}}