每 24 小时运行一个 php 任务
Posted
技术标签:
【中文标题】每 24 小时运行一个 php 任务【英文标题】:running a php task every 24 hours 【发布时间】:2010-10-05 05:03:49 【问题描述】:我有一些函数使用 curl 从几个站点中提取信息并将它们插入到我的数据库中。我只是想知道每 24 小时执行一次这项任务的最佳方法是什么?
我现在正在关闭 Windows,但一旦我上线可能会切换到 linux(如果这会有所不同)。我现在在 symfomy 框架内工作。
我听说 cronjobs 可以做到这一点...但是看看该站点,它似乎可以远程工作,我宁愿把东西留在家里...我可以在我的计算机上“运行服务”吗?不管那是什么意思;)(听说过)
感谢您的帮助, 安德鲁
【问题讨论】:
【参考方案1】:这正是 Cron (linux) 或计划任务 (windows) 的用途。
您可以在应用程序服务器上运行它们以将所有内容保存在一个位置。
例如,我在我的家庭服务器上运行了一个 cron 来每天备份它的 mysql 数据库。这个过程只涉及一个系统。
【讨论】:
【参考方案2】:将0 0 * * * php /path/to/your/cronjob.php
添加到您的crontab 应该可以完成此操作。
【讨论】:
【参考方案3】:您可以在 cron 中设置计划任务(或在 windows 中设置计划任务)。最简单的方法是创建一个从命令行执行 php 脚本的 shell 脚本(Windows 中的批处理脚本)(因此您不必使用 www 服务器资源)。当然是在目标机器上执行脚本。
【讨论】:
【参考方案4】:如果您认为 cron 或 windows 调度程序不合适,我有时会发现编写一个执行相同操作的快速 Java 应用程序很方便:
您可以拨打电话System.getRuntime().exec("cmd line stuff here");
。然后,您可以在 TimerTask
中扭曲该操作。最后,通过添加 TimerTasks 并指定时间和频率等来启动 Timer
对象...
这显然比上面提到的例子更复杂,但我喜欢它,因为你可以投入一些智能错误处理,并在出现问题时向自己发送电子邮件警报等。
可能有点矫枉过正,但如果您要处理多个此类操作,可能值得一看。
斯威尼
【讨论】:
以上是关于每 24 小时运行一个 php 任务的主要内容,如果未能解决你的问题,请参考以下文章