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;
}
}