上周写好的发送邮件的计划任务只发送了一部分,检查计划任务日志,发现 502 Bad Gateway 的错误(已经在脚本中设置了 set_time_limit(0))。
后来在网上查找资料,可以通过以下设置来解决脚本超时导致 502 Bad Gateway 的问题(Nginx + php-fpm,CentOs 系统):
① Nginx 设置
修改 nginx.conf:
fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
重启 nginx。
② php-fpm 设置
修改 php-fpm.conf:
request_terminate_timeout = 0s
重启 php-fpm:
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
502 问题得到解决。
另外最好设置一张数据库表来记录哪些用户的邮件已经发送成功,这样在脚本终止之后重新执行不会重复发送邮件。
时间: 2024-10-13 14:17:30