php - 无限期运行 PHP 脚本,MySQL 超时

标签 php mysql

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

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

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

c.) ping 数据库以确保我仍然处于连接状态,并在执行和查询之前根据需要重新连接?

d.) 还有别的吗?

编辑:澄清一下,脚本会向用户的 iPhone 发送推送通知。

最佳答案

关于您不能将 PHP 脚本作为守护进程运行的建议是荒谬的。我已经做过好几次了,而且效果很好。有 some example code to get you started . (需要 PEAR...如果您不是粉丝,请自己动手。)

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

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

关于php - 无限期运行 PHP 脚本,MySQL 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12362724/

相关文章:

mysql - PhpMyAdmin 栏目搜索

mysql - 在mysql中比较两个日期时日期格式出现问题

php - curl 替代要求文件而不是 allow_url_fopen?

php - 使用 PHP 将 CSV 文件导入 MySQL

php - Codeigniter事件记录和表别名

php - mySQL 表中撇号替换为 '

php - 读PHP Session需要 `htmlspecialchars()`吗?

mysql - 为什么我的嵌套光标显示两倍的结果?

php - 如何从单个 MYSQL 查询中获取要删除的图像列表

php - Magento 删除菱形问号