24
Aug
PHP群发邮件遇到的一些问题
虽然在PHP中取消了程序超时时间限制set_time_limit(0),但如果是NGINX + FASTCGI模型则可能抛出504 Gateway Time-out(此时PHP脚步还在运行中)
可通过调节以下参数增大超时时间
fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
有情提醒:在生产服务器上调整以上配置需谨慎,重则导致服务器宕机。
赞,你很有心。响应时间苛刻的应用程序一般都会考虑使用MQ来异步执行某些操作过程。
P.S 谢谢你送的衣服,我很喜欢。
[回复]
admin 回复:
09月 2nd, 2010 at 23:24
@Leo, 你很喜欢,我很荣幸,哈哈,估计上海的天气还能穿一段儿呢 :)
[回复]
很少量的群发30ms也应该足够了,量大的话还是放在任务队列中处理比较好。
[回复]
admin 回复:
08月 26th, 2010 at 23:15
@Leo, 请教下是什么任务队列?如何放?
[回复]
Leo 回复:
08月 26th, 2010 at 23:23
@admin,
MQ就是消息队列,将一系列操作拆分成多个原子操作的方案。一个典型的场景就是GAE存在30s的请求处理时限,对应的解决方案是从中拆分出可非实时处理的部分(譬如邮件发送),异步来执行。MQ就是实现这里消息传递的机制。
[回复]
jean 回复:
08月 27th, 2010 at 11:36
@Leo, 有时间研究下,之前帮JAVA组的同事做过MQ的环境,原来PHP开发也能用上。
admin 回复:
09月 2nd, 2010 at 18:12
@Leo, 今天研究了下队列,是个好东西,我把用户邮件批量获取后存入队列,然后用邮件发送脚本每隔一定时间发一封。