首页 » 网站推广 » beanstalkdphp扩大技巧_轻量级消息队列beanstalkd

beanstalkdphp扩大技巧_轻量级消息队列beanstalkd

访客 2024-11-23 0

扫一扫用手机浏览

文章目录 [+]

tube:一个行列步队,用来存放job,相称于一个主题(topic),是producer和consumer操作的工具

producer:生产者,发布任务的人,通过put命令来将一个job放到一个tube中

beanstalkdphp扩大技巧_轻量级消息队列beanstalkd

consumer:消费者,处理任务的人,通过reserve/release/bury/delete命令来获取job或改变job的状态

beanstalkdphp扩大技巧_轻量级消息队列beanstalkd
(图片来自网络侵删)
流程:

producer生产出一个job,放在tube中,consumer监听着tube,一旦有job任务,就将其取出进行业务处理,然后改变job的状态

Job的四种状态:

ready:生产者put一个job后,job便是ready,表示该job随时可以被消费者消费

reserved:job正在被处理

delayed:job被延迟,延迟韶光到了之后,job将变成ready状态供消费者消费

buried:job任务由于某些条件限定而被暂放一边,等条件知足再连续处理

特性

优先级:支持设置job的优先级,值越小,优先级越高,默认优先级为1024

持久化:可以通过binlog将job及其状态记录到文件里面,在Beanstalkd下次启动时可以通过读取binlog来规复之前的job及状态。

超时掌握:为了防止某个consumer永劫光占用任务但不能处理的情形,Beanstalkd为reserve操作设置了timeout韶光,如果该consumer不能在指定时间内完成job,job将被迁移回READY状态,供其他consumer实行

不敷

在利用中创造一个Beanstalkd尚无供应删除一个tube的操作,只能将tube的job依次删除,并让Beanstalkd来自动删除空tube

Beanstalkd不支持客户端认证机制,开拓者将运用处景定位在局域网

安装与利用

ubuntu安装beanstalkd

apt-get install beanstalkd1

启动

beanstalkd -l 127.0.0.1 -p 11300 -b /var/log/beanstalkd/binlog1

-b 参数置顶binlog文件路径,断电后重启会自动规复任务。

也可以利用/etc/init.d/beanstalkd 来启动和查看beanstalkd进程状态等

Usage: /etc/init.d/beanstalkd {start|stop|force-stop|restart|force-reload|status}1

配置文件所在:

/etc/default/beanstalkd1

php操作beanstalkd

php操作beanstalkd可以利用pheanstalk

composer安装pheanstalk

composer require pda/pheanstalk1

github源码地址:pheanstalk

大略例子:

<?phprequire'vendor/autoload.php';

use Pheanstalk\Pheanstalk;

$pheanstalk=new Pheanstalk('127.0.0.1');

// ----------------------------------------

// 生产一个job,放入testtube这个tube中

$pheanstalk->useTube('testtube')

->put(\公众job payload goes here\n\公众);

// ----------------------------------------

// 消费者监听testtube这个tube,

$job=$pheanstalk->watch('testtube')

->ignore('default')

->reserve();

//此处进行业务处理

echo $job->getData();

//业务处理成功后删除job

$pheanstalk->delete($job);

在实际开拓中,生产者和消费者肯定是分开的,这里只是为了大略演示以是写在一个文件中

reserve()方法是壅塞的,在实际开拓中,可以在while循环中利用reserve()方法持续监听,一有任务就实行,如:

while(true){ $job = $pheanstalk ->watch('testtube') ->reserve(); //此处进行业务处理 }beanstalk管理工具

beanstalk_console (github自行搜索)

支配并访问这个管理工具,如果报了nginx 502 gateway 的缺点,可考试测验以下办理方案:

打开lib/include.php,删除或注释 Pheanstalk_ClassLoader::register(dirname(__FILE__));

标签:

相关文章

介绍直播新纪元,轻松进入直播的五大步骤

随着互联网技术的飞速发展,直播行业在我国逐渐崛起,越来越多的人选择通过直播这一新兴媒介展示自己、分享生活、传递价值。对于许多新手来...

网站推广 2025-01-03 阅读1 评论0

介绍相机美颜原理,科技与美学的完美结合

随着科技的发展,智能手机的摄像头功能日益强大,美颜相机成为了许多人拍照的首选。美颜相机不仅满足了人们对于美的追求,更在视觉上给人带...

网站推广 2025-01-03 阅读1 评论0

介绍磁铁的制造,科学与艺术的完美结合

磁铁,一种神秘的物质,自古以来就吸引了无数人的目光。它不仅具有独特的磁性,还能在工业、医疗、科研等领域发挥重要作用。磁铁是如何制造...

网站推广 2025-01-03 阅读1 评论0

介绍电瓶激活方法,让电池焕发新生

随着科技的不断发展,电动汽车逐渐成为人们出行的首选。而电瓶作为电动汽车的核心部件,其性能直接影响着车辆的续航里程和行驶体验。新购买...

网站推广 2025-01-03 阅读1 评论0