84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
PHP 由于客户比较多,发送短信类型有很多种,想用短信队列来解决发送担心,不知道如何下手???
小伙看你根骨奇佳,潜力无限,来学PHP伐。
简单点用redis lpush lpop
redis lpush lpop
$redis->lpush('queue',json_encode($data));
开一个进程lpop消费就可以了,你可以先本地测试下while($redis->lpop('queue'))
while($redis->lpop('queue'))
一个生产者,一个消费者进程。消费的任务就是发送短信。你可以把任务放到redis的list类型中,再开一个常住进程监控redis,有任务就拿出来消费。
既然选择用队列,方式有很多1.很多php框架都有队列的功能 laravel phalcon等2.就是redis list数据类型 ,一边把它推入队列中,另一边把任务从队列里拿出来,这只是一个中转站,当然你也可以存到数据库里,效率当然是redis高一些
那就用队列来解决问题了啊,有什么疑问吗?
每次用户端请求发短信, 你直接把你直接把这个方法丢到队列里面去, 然后在服务器里面在启动一个php守护进程,比如每隔1s中扫队列里面,如果有数据,就去执行这个方法, ,, 如果你不放心, 你就在写一个shell脚本, 去每隔10分钟去检测这个队列有没有挂........
https://github.com/pda/pheans...
用这个库试试呢?
把内容和号码一起放队列
自己去维护这样的一个工作还是比较累的。推荐使用第三方库可以尝试一下phpsms这个库
phpsms
RabbitMQ+PHP 消息队列
建议轻量的用beanstalks,Redis的pub/sub 在c/s中断时,将丢数据,不是MQ。rabbitmq之类的有点重,看是否需有那么大量。
简单点用
redis lpush lpop
$redis->lpush('queue',json_encode($data));
开一个进程lpop消费就可以了,你可以先本地测试下
while($redis->lpop('queue'))
一个生产者,一个消费者进程。
消费的任务就是发送短信。
你可以把任务放到redis的list类型中,再开一个常住进程监控redis,有任务就拿出来消费。
既然选择用队列,方式有很多
1.很多php框架都有队列的功能 laravel phalcon等
2.就是redis list数据类型 ,一边把它推入队列中,另一边把任务从队列里拿出来,这只是一个中转站,当然你也可以存到数据库里,效率当然是redis高一些
那就用队列来解决问题了啊,有什么疑问吗?
每次用户端请求发短信, 你直接把你直接把这个方法丢到队列里面去, 然后在服务器里面在启动一个php守护进程,比如每隔1s中扫队列里面,如果有数据,就去执行这个方法, ,, 如果你不放心, 你就在写一个shell脚本, 去每隔10分钟去检测这个队列有没有挂........
https://github.com/pda/pheans...
用这个库试试呢?
把内容和号码一起放队列
自己去维护这样的一个工作还是比较累的。推荐使用第三方库
可以尝试一下
phpsms
这个库RabbitMQ+PHP 消息队列
建议轻量的用beanstalks,Redis的pub/sub 在c/s中断时,将丢数据,不是MQ。rabbitmq之类的有点重,看是否需有那么大量。