【发布时间】:2019-04-27 20:41:19
【问题描述】:
我有一个长时间运行的 php 脚本,它可以发送电子邮件并更新数据库。 该脚本大约需要 45 分钟才能完成。 我有一个进度指示器,我可以在其中看到可能发生循环问题的迭代。 总是在大约 12 分钟后发生错误未知错误。邮件脚本没有问题。在我看来,mysql 数据库连接已断开。 有没有办法延长连接的持续时间? 谢谢
【问题讨论】:
-
也可以是整个php脚本都停止了。您对 php 脚本的
max_execution_time设置至少应为 2700 秒,100% 确定为 3000。不过,我不太确定 45 分钟的 php 脚本是个好主意。还有 mysqlconnect_timeout属性设置 mysql 超时,但据我所知默认情况下没有设置。 -
最好不要运行这么长时间的脚本。考虑将脚本重构为消息队列或 cron 作业。
-
@Gino Pane,我将如何通过 cron 工作来执行此操作?我基本上有一个循环遍历 1700 条记录,通过 GMAIL API 发送一封电子邮件,然后将一条记录添加到我收集的数据库中,表明消息发送正常。
-
把你的任务分成小块,做很多小块,而不是一个长的脚本。