【Python】Celery+RabbitMQ基本使用配置

python语言
文件:config.py

from celery import Celery, Task
from kombu import Exchange, Queue, binding

exchange = Exchange('test', type='topic')

queues = [
    Queue(
        'queue1',
        [binding(exchange=bsite_exchange, routing_key='queue1')],
        queue_arguments={'x-queue-mode': 'lazy', 'x-max-priority': 10},
        max_priority=10
    ),
    Queue(
        'queue2',
        [binding(exchange=bsite_exchange, routing_key='queue2')],
        queue_arguments={'x-queue-mode': 'lazy', 'x-max-priority': 10},
        max_priority=10
    )
]

# 配置交换机名,交换机类型
def route_task(name, args, kwargs, options, task=None, **kw):
    exchange = options.get('exchange', 'test')
    exchange_type = options.get('exchange_type', 'direct')
    routing_key = options.get('routing_key', name)
    return {
        'exchange': exchange,
        'exchange_type': exchange_type,
        'routing_key': routing_key
    }

celery = Celery()
config = {
    'task_queues': queues ,
    'broker_url': 'amqp://admin:mqadmin@127.0.0.1:30975/',
    'result_compression': 'gzip',
    'task_routes':(route_task,)
    # 默认任务配置
    'task_create_missing_queues': True,
    'task_default_delivery_mode': 'persistent',
    "worker_prefetch_multiplier": 4,
    # 'task_track_started': True,
    'timezone': "Asia/Shanghai",
    'result_backend': None,
    'worker_enable_remote_control': False,

}

celery.config_from_object(config)

文件:tasks.py

from config import celery

@celery.task(
    name='queue1',
    acks_late=True,
    bind=True,
    rate_limit='150/s'
)
def task1(self,a,*args, **kwargs):
	print(a)

@celery.task(
    name='queue2',
    acks_late=True,
    bind=True,
    rate_limit='150/s'
)
def task2(self,a,*args, **kwargs):
	print(a)

启动单个队列任务命令

celery worker -A tasks:celery -Q queue1 -l info -P gevent
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值