我想在这会下载一些东西,它们存储在服务器不断运行PHP程序..如何在服务器上连续运行一个php程序?
我想创建一个脚本并运行在cron的..
但我不知道有没有任何其他简单的方法或轻量级组件,在连续运行时,服务器内存会更少?
我想到了另外一个简单的事情,
创造了无限max_execution时间PHP脚本,并与一些睡眠运行一段时间(true)循环(无限循环)中的代码,然后开始使用PHP程序..
哪个会是更好的方法来做到这一点?
我想在这会下载一些东西,它们存储在服务器不断运行PHP程序..如何在服务器上连续运行一个php程序?
我想创建一个脚本并运行在cron的..
但我不知道有没有任何其他简单的方法或轻量级组件,在连续运行时,服务器内存会更少?
我想到了另外一个简单的事情,
创造了无限max_execution时间PHP脚本,并与一些睡眠运行一段时间(true)循环(无限循环)中的代码,然后开始使用PHP程序..
哪个会是更好的方法来做到这一点?
运行一个cron--这是他们在那里。
您的循环想法while(TRUE)
和sleep()
ing很脆弱,可能不像其他任何开发人员那样清楚,然后运行cron作业。
使用cron作业是相当不错的...如果您使用脚本,您是不是必须使用浏览器调用它,或每次在shell中调用它?如果是下载东西,可以将其设置为每小时运行一次或类似的东西。如果您将其作为Web服务器上的脚本使用,则有可能已经运行它,然后再次调用它,以便同时运行两个实例。
popen()
来调用php脚本中的php-cli。您可以daemonize一个PHP脚本,就像您可以创建Perl或Python守护进程一样。启动和停止脚本取决于操作系统。有一个PEAR类System_Daemon有助于编写PHP守护进程。
如果你只是从互联网上下载东西,用wget这样的东西去比较明智吗?另一方面,如果你正在抓取/网络抓取,我想做一个cronjob会更好
克朗是好的,但我想知道是否有任何其他面向服务器的方法,将使用较少的内存...如果它连续运行,则没有再次重复该任务的风险,但是有机会在运行cron时重复运行 – Vijay 2010-11-25 05:31:40
@kvijayhari您可以通过shell包装器修复cron的两倍。他是rsync的一个例子,但它可以修复为PHP脚本工作。 https://gist.github.com/714960。它们将在cron中执行,而不是直接在PHP中执行。 – 2010-11-25 05:38:30