我有一些使用curl从几个网站上提取信息并将其插入到我的数据库中的函数。我想知道最好的方法是什么,以执行每24小时的任务?
我现在在windows上运行,但一旦我上线(如果有区别的话),我可能会切换到linux。我现在正在symfomy框架内工作。
我听说cronjobs可以做到这一点...但看着这个网站似乎是远程工作,我宁愿把事情留在公司内部...我能在电脑上“运行服务”吗?不管那意味着什么;)(曾听别人使用过)
谢谢任何帮助, Andrew
我有一些使用curl从几个网站上提取信息并将其插入到我的数据库中的函数。我想知道最好的方法是什么,以执行每24小时的任务?
我现在在windows上运行,但一旦我上线(如果有区别的话),我可能会切换到linux。我现在正在symfomy框架内工作。
我听说cronjobs可以做到这一点...但看着这个网站似乎是远程工作,我宁愿把事情留在公司内部...我能在电脑上“运行服务”吗?不管那意味着什么;)(曾听别人使用过)
谢谢任何帮助, Andrew
这正是 Cron(Linux)或 Scheduled Tasks(Windows)的作用所在。
您可以在应用程序服务器上运行它们,以便将所有内容集中管理。
例如,我在我的家庭服务器上运行一个 Cron,每天备份其 MySQL 数据库。该过程仅涉及一个系统。
您可以在cron(或Windows中的计划任务)中设置定时任务。最简单的方法是创建一个shell脚本(在Windows中为批处理脚本),从命令行执行php脚本(这样您就不必使用www服务器资源)。当然,您需要在目标机器上执行该脚本。
如果你决定cron或Windows计划程序不适合你的需求,有时编写一个快速的Java应用程序来完成相同的任务会很方便:
你可以使用调用System.getRuntime().exec("cmd line stuff here");
。然后你可以将该操作封装在一个TimerTask
中。最后,通过添加TimerTasks并指定时间和频率等参数,启动Timer
对象。
这显然比上述示例更复杂,但我喜欢它,因为你可以加入一些智能错误处理,并在出现问题时发送电子邮件提醒或类似的内容。
可能有点过度,但如果你需要处理多个此类操作,这可能值得一看。
sweeney