4

我有一个无限期运行的 PHP 脚本,每 5-10 秒执行一次特定任务(一个 do-while 循环,在每次迭代结束时检查数据库以确定它是否应该继续)。此任务包括 MySQL 数据库查询。处理数据库连接的最佳方法是什么?我是不是该:

a.)每次迭代都断开连接然后重新连接到数据库?

b.)将连接超时设置为无限期限制?

c.) ping 数据库以确保我仍然连接,并在执行和查询之前在必要时重新连接?

d.)还有别的吗?

编辑:为了澄清,脚本向用户的 iPhone 发送推送通知。

4

1 回答 1

1

不能将 PHP 脚本作为守护进程运行的建议是荒谬的。我已经做了好几次了,而且效果很好。有一些示例代码可以帮助您入门。(需要梨……如果你不是粉丝,请自己动手。)

现在,关于你的实际问题。如果您进行常规查询,您的 MySQL 连接不会超时。该超时适用于空闲连接。绝对保持连接......没有理由断开和重新连接的开销。无论如何,在数据库失败时,由于您的脚本作为守护程序运行,您可能不想立即终止该进程。

我建议处理异常并重新连接。如果您的重新连接失败,请稍候再试一次。在几次失败(无论是什么适当的)之后,您可能会在那个时候终止该进程,因为某些东西可能已经损坏,需要人工干预。

于 2012-09-11T04:44:06.483 回答