2010-08-09 56 views

回答

1

cron.php即使在多站点安装中也是正确的方法:Drupal检查HTTP_HOST以查看引导到哪个站点。您在留言中提到,它改名为:除了或者重命名或运行在重命名的文件cron作业,你也可以从状态报告页面或通过Drush运行:

/usr/bin/php /path/to/drush.php -v -l http://example.com -r /path/to/drupal/ cron 

或者干脆

drush -l http://example.com cron 

如果你有你的路径设置正确的cron。

+0

虽然他们使用了Supercron模块,但它使用了supercron.php。这是我继承的一个项目,被告知不要改变任何东西。它会保持原样吗? – Kevin 2010-08-09 21:44:01

+0

我能想到的唯一的事情就是有些东西试图直接敲击cron.php(例如cron作业),但Drupal内部的所有东西(包括Contrib模块)都应该使用'hook_cron()',而不是抓取或做任何事情到'cron.php'直接。你应该没问题。 – 2010-08-09 21:51:07

1

我想你的答案是用hook_cron()钩子做些事情。您可以在数据库查询中指定该网站。
这是一些代码实现它:

<?php 
    function hook_cron() { 
     $result = db_query('SELECT * FROM {site} WHERE checked = 0 OR checked 
     + refresh < %d', time()); 

     while ($site = db_fetch_array($result)) { 
      cloud_update($site); 
     } 
    } 
?> 

http://api.drupal.org/api/function/hook_cron
偷我知道这是不是你要找的答案,但我认为这是正确的方向。我是drupal的一周。我想我喜欢它;)

+1

实际上,我发现很久以前有人将cron.php重命名为cron.bk,因为他们使用的是supercron.php。我会将服务器上的cronjob更改为该文件,并查看会发生什么情况。谢谢。 – Kevin 2010-08-09 14:26:55