使用cron系统地更新数据库

时间:2012-07-06 20:03:42

标签: php mysql unix crontab

我正在开发类似于幻想足球应用程序的软件。

我有用户帐户,其中包含存储在mysql中的关系数据库中的每个信息。我有一个PHP脚本,我希望在所有游戏完成后立即运行以更新每个成员的统计数据(可能有数千个用户)。

在研究之后,似乎最好的解决方案是使用Unix设置cron选项卡 我想知道这是否是正确的解决方案?

如果我将此crontab设置为每周二运行它会运行PHP脚本来更新用户信息吗?

对于一个简单的网站,是否可以使用Unix轻松设置cron选项卡?

1 个答案:

答案 0 :(得分:1)

设置crons非常简单。如果您有shell访问权限,只需键入#crontab -e,它将带您进入cron设置。查看此链接:Crontab - Quick Reference
您只需创建一个PHP脚本并通过cron选项卡链接它。如果您正在运行带有cPanel的服务器,那么如果您希望在GUI中执行此操作,则还有内置的cron管理器。

你没有提供足够的信息让我对此有任何结论,但你想要平衡脚本,以便1)足够频繁地运行,以便它必须更新足够小的更改 - 例如,如果每小时更改100条记录,每天运行脚本将意味着它必须更新2400条记录,而如果您每周运行一次,则必须更新16800条记录,这可能非常严重,以至于它会增加您的服务器负载。和/或2)以块的形式分解您的更新。例如,如果记录每周只更改一次,但是当时16800条记录发生了变化,那么您可能希望让脚本运行1000次更新并使其暂停一段时间,再运行一些,睡眠等(这是一个坏习惯,但它是我认为最简单的),或者你经常运行你的cron脚本,每次进行1000次更新,并且在它结束时,它会留下一个跟踪(例如,最后一个ID号)它已更新到数据库的最后一次更改,以便脚本可以在下次运行时接收它。

如果您希望我草拟一些更详细的例子来说明两种不同的方法,请告诉我。