2011-02-23 59 views
1

的问题是很容易的,我想执行一些PHP文件每一个“N”分钟。例如:执行PHP文件periodicaly

每N分钟 { 执行(script1.php) 执行(script2.php) 执行(script3.php) }

我知道的crontab,但我试图找到另一解。有什么建议么?提前致谢。

+4

为什么你不能使用cron? – 2011-02-23 21:11:16

+2

crontab是最好的解决方案。在PHP中没有线程,因为你不能启动一个线程,并说每N秒运行一次。 crontab有什么问题? – 2011-02-23 21:11:31

+2

对cron的另一投票,如果由于某种原因无法使用它,还有其他商业自动化解决方案。 – Orbit 2011-02-23 21:12:28

回答

3

使用Cron作业是通常的解决方案。你能解释为什么你不想使用CRON?我还看到了一些为您的系统添加类似于cron的功能的库。例如在Java/Groovy/Grails世界里有Quartz库/插件。快速谷歌搜索产生了一个名为phpJobScheduler的PHP库,它看起来类似于Quartz。我从来没有使用phpJobScheduler,所以我不能担保。

我很感兴趣,为什么你不希望使用的crontab这个?您是否将成为运行此服务器的主要网络操作人员,还是您将依赖现有的系统团队?你可能想要得到他们的意见,因为他们是受你选择的方法影响最大的人。我发现他们倾向于喜欢简单的日程安排。

+0

使用标准接口(或通过许多控制面板)管理多个cron作业可能会成为管理员的噩梦。 它更容易安装: http://phpjobscheduler.co。英国/那么你可以很容易地在几秒钟内看到和编辑任务页面(但我会说,因为它是我的开源应用程序)。 – 2014-04-10 06:21:27

0

在我使用所谓的任务计划程序内置proggie窗口。至于linux,是的,cron作业就是你的答案。

0

您可以创建一个PHP脚本循环永远做X每N分钟,并用&运行命令,以使它成为一个后台进程。

/路径/到/ PHP /home/user/bgscript.php &

如果你想让它始终运行,你再有将其添加到启动的init.d或服务取决于味道* nix中。

该解决方案是可能的,但我个人强烈建议用crontab中去,它的成立,证明和行之有效的!你为什么要避免它?

+0

避免crontab的主要原因是我现在没有任何关于它的事情,我只是在PHP中找到更简单的方法。 无论如何,非常感谢您的回答,我会尽量使用crontab。 顺便说一句,有可能在您的托管服务器使用crontab或取决于您的托管公司? – Iker 2011-02-23 21:22:31

+0

这将取决于您的主机和您的托管软件包,它们都具有不同级别的访问权限,它们会将您提供给您的服务器。 – Infotekka 2011-02-23 21:32:54

0

你可以建立一个脚本,让它作为一个守护进程运行,并在设定的时间间隔内执行某些任务,但实际上这只是模拟cron ...而且如果你有能力运行一个php脚本作为守护进程,你应该真的也能够将它作为cronjob运行,因为这是crons的成果。

如果您需要关于如何运行PHP脚本作为一个守护进程read this great intro更多信息。守护进程和cron之间也有很好的比较,值得一读。