Beanstalkd队列的使用方法


本篇内容主要讲解“Beanstalkd队列的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Beanstalkd队列的使用方法”吧!官网:https://kr.github.io/beanstalkd/安装(也可以采用composer 香港云主机进行安装)1启动(0.0.0.0可以运行任何ip进行连接)-b 开启binlog,断电后重启会自动恢复任务。1配置文件1Beanstalkd设计里面的核心概念:job:一个需要异步处理的任务,是 Beanstalkd 中的基本单元,需要放在一个 tube 中。tube:一个有名的任务队列,用来存储统一类型的 job,是 producer 和 consumer 操作的对象。producer:Job 的生产者,通过 put 命令来将一个 job 放到一个 tube 中。consumer:Job的消费者,通过 reserve/release/bury/delete 命令来获取 job 或改变 job 的状态。job 的生命周期当producer直接put一个job时,job就处于READY状态,等待consumer来处理,如果选择延迟put,job就先到DELAYED状态,等待时间过后才迁移到READY状态。consumer获取了当前READY的job后,该job的状态就迁移到RESERVED,这样其他的consumer就不能再操作该job。当consumer完成该job后,可以选择delete, release或者bury操作;delete之后,job从系统消亡,之后不能再获取;release操作可以重新把该job状态迁移回READY(也可以延迟该状态迁移操作),使其他的consumer可以继续获取和执行该job;有意思的是bury操作,可以把该job休眠,等到需要的时候,再将休眠的job kick回READY状态,也可以delete BURIED状态的job。正是有这些有趣的操作和状态,才可以基于此做出很多意思的应用,比如要实现一个循环队列,就可以将RESERVED状态的job休眠掉,等没有READY状态的job时再将BURIED状态的job一次性kick回READY状态。READY – 需要立即处理的任务,当延时 (DELAYED) 任务到期后会自动成为当前任务;DELAYED – 延迟执行的任务, 当消费者处理任务后, 可以用将消息再次放回 DELAYED 队列延迟执行;RESERVED – 已经被消费者获取, 正在执行的任务。Beanstalkd 负责检查任务是否在 TTR(time-to-run) 内完成;BURIED – 保留的任务: 任务不会被执行,也不会消失,除非有人把它 “踢” 回队列;DELETED – 消息被彻底删除。Beanstalkd 不再维持这些消息。优先级任务 (job) 可以有 0~2^32 个优先级, 0 代表最高优先级,默认优先级为1024。持久化可以通过binlog将job及其状态记录到文件里面,在Beanstalkd下次启动时可以通过读取binlog来恢复之前的job及状态。分布式容错分布式设计和Memcached类似,beanstalkd各个server之间并不知道彼此的存在,都是通过client来实现分布式以及根据tube名称去特定server获取job。超时控制
为了防止某个consumer长时间占用任务但不能处理的情况,Beanstalkd为reserve操作设置了timeout时间,如果该consumer不能在指定时间内完成job,job将被迁移回READY状态,供其他consumer执行。项目地址:https://github.com/pda/pheanstalk/Producer 示例:向队列中添加jobConsumer 示例:从队列中取出job检查服务状态到此,相信大家对“Beanstalkd队列的使用方法”有了更深的了解,不妨来实际操作一番吧!这里是开发云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: maven中scope、optional、exclusions的含义分别是什么

本篇内容介绍了“maven中scope、optional、exclusions的含义分别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!scopecompi…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/30 15:51
下一篇 07/30 15:51

相关推荐