基于httpsqs队列的实践

18 篇文章 0 订阅

httpsqs的详细信息可以百度

这里使用的主要是模拟异步处理程序,如果要实现队列的消息订阅模式,可以参考activemq等其他消息中间件

方法1 采用文件锁的方式

$fp = fopen('/path/to/flocktest', 'w+');
if (flock($fp, LOCK_EX|LOCK_NB)) { // 支持win32平台
	while(true) {
	    $data = $httpsqs->get($qname);
	    if ($data != 'HTTPSQS_GET_END' && $data != 'HTTPSQS_ERROR') {
	        // process
	        ...
	    } else {
	        break;
	    }
	}
} else {
	echo "didn't get the clock.\r\n";
}
fclose($fp);

方法2 采用shell的方式

mq.sh 此shell需要计划任务一天执行一次

export daemon_path='/var/www/daemon/'
file_name='test.sh'
shell_count=`ps -ef | grep $file_name | grep -v grep -c`
if [ $shell_count -eq 0 ];then
    ${daemon_path}test.sh &
fi

test.sh

while [ 1 ]
do
    /usr/local/php/bin/php ${daemon_path}test.php
    sleep 30
done

test.php

/*核心code*/
while(true) {
    $data = $httpsqs->get($qname);
    if ($data != 'HTTPSQS_GET_END' && $data != 'HTTPSQS_ERROR') {
        // process
        ...
    } else {
        break;
    }
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值