python和django使用celery

celery是什么

Celery是专注实时处理和任务调度的分布式任务队列

同步与异步

同步:顺序执行,程序中间有耗时操作时必须执行完成才能继续向下执行,直到结束。
异步:当有耗时操作时,可以跳过继续执行到结束。

celery的优点

Simple(简单)
Celery 使用和维护都非常简单,并且不需要配置文件。

Highly Available(高可用)
woker和client会在网络连接丢失或者失败时,自动进行重试。并且有的brokers 也支持“双主”或者“主/从”的方式实现高可用。

Fast(快速)
单个的Celery进程每分钟可以处理百万级的任务,并且只需要毫秒级的往返延迟(使用 RabbitMQ, librabbitmq, 和优化设置时)

Flexible(灵活)
Celery几乎每个部分都可以扩展使用,自定义池实现、序列化、压缩方案、日志记录、调度器、消费者、生产者、broker传输等等。

现实类比

同步:你投递简历到一家公司后,你一直等待到该公司回复是否约你面试,你才进行下一步是否去面试或者投递另外的公司操作,中间等待的时间就浪费掉了。
异步:你投递简历到一家公司后,你继续投递简历到其他公司,第二天你可以询问你是否有机会去面试,中间你并没有等待操作,在第二天需要结果的时候直接去询问即可。

程序中的应用场景

主要应用场景:
1,web应用,当需要触发事件需要较长时间处理完成,可以交给celery进行异步执行,执行完后返回结果,这段时间不用等待,提高系统的吞吐量和响应时间。
2,完成任务时,需要额外的事件处理,如发送邮件等。
3,后台定时任务处理,celery可以帮助我们在不同服务器进行定时任务管理。
举例:你需要处理一件耗时操作,比如需要10s,那么在你开始执行到执行结束你就需要等待10s,程序才能执行完成。中间等待的10s你什么都不能做。
但是如果使用异步,程序执行到耗时操作时就可以将任务提交到消息队列后,继续向下执行,立即就可以执行完成。在你以后什么时候想要看操作结果时可以再去拿。
主要特性:

1,方便查询任务的进展情况,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天码一行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值