您好,匿名用户
随意问技术百科期待您的加入

群发短信和群发电邮的队列问题

0 投票

最近要做群发短信和群发电邮的程序,因为某些限制,都是多次去请求响应的接口,达到群发的效果。

然后就出现了这样的问题:我需要给100个客户发电邮,接口的响应时间平均在2s,然后我的php需要对接口进行100次post操作,长达200s,然后页面就超时了……

在不改动PHP设置的前提下,如何解决这个问题?

我自己能想到两个方案:

  1. 每次post一个,然后页面跳转,就像国内某些开源程序生成静态页那样,每次只做一个小请求,比如10s可以完成五次post,然后跳转到新页面,传入start=10 start=15这样的参数,不断跳转跳转刷新刷新,最后完成这个任务。缺点是这样需要客户端一直守着浏览器……
  2. 把发送消息的任务存在数据库里,做一个send.php之类的文件,每次取一个或几个消息去发送,然后用crond或者计划任务每秒之行send.php检查有没有新任务,有的话就执行任务。

我想知道还有没有别的简单易行的方法,比如我曾经听说过rabbitMQ什么的,但是没弄明白。。。

用户头像 提问 2012年 12月1日 @ Elise 上等兵 (273 威望)
分享到:

1个回答

0 投票
 
最佳答案

放在后台任务执行是一个好办法,应该也是最好的方法,不需要rabbitMQ,这只会让问题复杂化。但实际上有个方法可以让你的php不超时,即使用户浏览器连接断开了,它也会继续执行下去,那就是在你的php文件最开始加上以下两行

ignore_user_abort(true);
set_time_limit(0);
用户头像 回复 2012年 12月1日 @ Rumble 上等兵 (394 威望)
选中 2012年 12月1日 @Elise
提一个问题:

相关问题

0 投票
1 回复 42 阅读
用户头像 提问 2012年 12月1日 @ Lucia 上等兵 (416 威望)
+2 投票
1 回复 94 阅读
用户头像 提问 2012年 12月26日 @ Poppy 上等兵 (395 威望)
+1 投票
1 回复 50 阅读
用户头像 提问 2012年 12月1日 @ Anivia 上等兵 (276 威望)
0 投票
1 回复 60 阅读
用户头像 提问 2012年 12月1日 @ Fizz 上等兵 (325 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...