我有一个PHP脚本,它无限期地运行,每5-10秒钟执行一次特定的任务(一个do-while循环,在每次迭代结束时检查数据库,以确定它是否应该继续)。此任务包括MySQL数据库查询。处理数据库连接的最佳方法是什么?我是否应该:
a.)断开连接,然后每次迭代都重新连接到数据库?
b.)将连接超时设置为无限期?
( c.)平平数据库以确保我仍然连接,并在必要时在执行和查询之前重新连接?
d.)还有别的事吗?
编辑:为了澄清,脚本向用户的iPhones发送推送通知。
发布于 2012-09-11 04:44:06
关于不能将PHP脚本作为守护进程运行的建议是荒谬的。我已经做了好几次了,而且效果很好。有一些示例代码可以让您开始工作。(需要梨.如果你不是粉丝,那就自己动手吧。)
现在,谈谈你的实际问题。如果您正在进行常规查询,则您的MySQL连接不会超时。超时是用于空闲连接的。一定要保持联系..。没有理由造成断开和重新连接的开销。在任何情况下,如果数据库发生故障,因为您的脚本是作为守护进程运行的,所以您可能不希望立即终止该进程。
我建议处理异常并重新连接。如果您的重新连接失败,后退一段时间后再尝试。在经历了几次失败之后(不管是什么合适的),您可能会在那个时候扼杀这个过程,因为可能会有一些需要人工干预的东西被破坏了。
https://stackoverflow.com/questions/12362724
复制相似问题