php redis队列处理任务,PHP Redis Queue

这篇博客介绍了一个独立于框架的PHP RedisQueue实现,设计用于分布式环境下提高负载能力。系统采用主进程监控64个子进程处理分散在64个Redis list中的任务,确保稳定性和性能。目前在项目中稳定运行一年以上,单机支持64个进程。开发者可以通过参考提供的Yii框架测试示例进行自定义配置和worker开发。
摘要由CSDN通过智能技术生成

#PHP Redis Queue

这是一个可以扩展的队列处理程序,没有使用框架。我们的项目使用Yii的框架,所有这里的测试示例就按照Yii的方式来编写的。

###简要设计思路

存入的将数据分散到64个Redis的list中去,这样是便于扩展机器来提高负载

后台运行一个PHP主进程,分别fork 64个子进程去对应处理 64个list中的数据。

主进程要监控子进程状态,在子进程正常或意外结束后及时重新开启对应子进程。

###现状

在我们项目中已经使用一年多,性能和稳定性方面都表现的很不错。

目前是单机运行64个进程,因为单机处理效率已经能够满足需求,就没有在处理程序这个理做更多分布式开发了。

#开发与使用

使用上参考 test/QueueCommand.php 主要是3个命令:start,stop,restart 非Yii框架参考这个文件编写代码即可。

test/queue_config.php 是配置文件,使用前请先看看。

###设置配置文件路径

// Yii 这样配置:

Yii::app()->params->queueConfig;

// 通用的配置方式:

QueueConfig::$configPath = '/data/www/test/queue_config.php';

###开发自己的worker处理程序

参考 src/worker/CWorkerForYii.php 从CWorker继承,然后实现相应的方法即可。

当然,你需要在配置文件中配置你的类文件名称:'WORKER'=> 'CWorkerForYii',

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值