celery任务调度框架实践

celery任务调度框架实践


celery架构图:

  1. Celery Beat:任务调度器,Beat进程会读取配置文件的内容,周期性地将配置中到期需要执行的任务发送给任务队列。

  2. Celery Worker:执行任务的消费者,通常会在多台服务器运行多个消费者来提高执行效率。

  3. Broker:消息代理,或者叫作消息中间件,接受任务生产者发送过来的任务消息,存进队列再按序分发给任务消费方(通常是消息队列或者数据库)。

  4. Producer:调用了Celery提供的API、函数或者装饰器而产生任务并交给任务队列处理的都是任务生产者。

  5. Result Backend:任务处理完后保存状态信息和结果,以供查询。Celery默认已支持Redis、RabbitMQ、MongoDB、Django ORM、SQLAlchemy等方式。


初始化:

1.运行celery

mac环境下的celery一下载就能直接运行。
但是centos6.9 环境下好像下载之后并不能直接运行,估计是环境变量没有配好。
需要加上celery的安装路径。
使用/usr/local/bin/celery -A your_app worker --loglevel=info


2.以守护进程运行celery:

需要一个初始化脚本:celeryd

  • 使用方法:/etc/init.d/celeryd {start|stop|restart|status}

  • 配置文件:/etc/default/celeryd

参考:


3.使用redis:

mac下安装redis

  • brew install redis
  • 如果需要后台运行 redis 服务,使用命令 brew services start redis
  • 如果不需要后台服务,则使用命令 redis-server /usr/local/etc/redis.conf。
  • mac os 安装 redis

安装redis后,启动时指定配置文件

  • redis-server ./redis.conf

检测后台进程是否存在

  • ps -ef |grep redis

使用分布式时,其他worker机子无法访问redis去取任务:

    • 3
      点赞
    • 17
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值