2013-12-23 20 views
0

我有一个Drupal 7网站,有一些没有使用Drupal API的Drupal网络服务。
我需要保存一个全局数组,其中有一些值需要每分钟更新一次,可用于每次调用Web服务。
我是新来DrupalPHP,我想知道我是否应该用纯PHP,如:Drupal cron vs PHP后台任务

while(true){ 
     doSomething(); 
     sleep(60); 
    } 

或Drupal的cron或其他什么东西?

回答

2

是的,你应该使用Drupal的Cron。在您提供的链接中有一个指向comprehensive setup video for Drupal's Cron的链接。在无限循环中使用sleep()是一个坏主意,因为如果您位于共享托管服务器(如GoDaddy)上,则可以运行的并发进程数量是有限的。因此,如果有20个用户向您的服务器发送请求,20个PHP进程正在休眠,则可能导致您的服务器崩溃(即HTTP 50x错误)。

使用Cron,您可以将需要的数据保存到由Cron更新的文件中,并在您的PHP脚本中同时访问该文件(多个PHP进程)。

+0

这样可以确保这个任务只运行一次,并且可以从我的外部PHP页面访问(它们位于我的Drupal根文件夹下)? – NickF

+0

它是不是更快/资源友好/磁盘友好的只是将其存储在数据库中,并配置您的服务器使用cronjob每60秒更新一次? –

+0

@NickF正确。该任务只能在通过Cron指定的时间间隔内运行一次。如果在同一台服务器上运行的任何脚本的权限设置正确,该文件将可以访问。 –