Windows 下的 drupal一个 Cron 的方法

PHPABC Drupal 1,261 次浏览 , , 没有评论

Drupal的cron task中会执行许多任务,例如建立索引、清除过期日志、收集聚合新闻什么什么的,如果不cron,你必定会损失功能。

执行Cron的方式很简单,就是访问你站点根目录下的cron.php。只要访问就可以,包括没事儿时用浏览器访问一下也可以。

但是我们一般需要自动访问。在Unix类系统下可以用crontab功能实现,在Windows下虽然有计划任务,但是不能配置成隔一阵子访问 url。这时可以安装poormanscron模块,此模块会在用户浏览页面时调用cron的功能,也就是说,只要有用户在访问你的网站,就相当于他们也帮你浏览了cron.php。

但我在用poormanscron模块时碰到这样一个问题,有时候cron任务可能会失败,或者报错,这时这个帮你点cron.php的用户可能页面访问失败或者看到些错误信息,有些让人莫名其妙。

我写了这么个VbScript脚本,一直在用,提供给大家参考:

Function do_check
    wscript.sleep 3000
 
    if objIE.Busy then
        do_check
    else
        objIE.quit
    end if
End Function
 
Dim objIE
    Set objIE = WScript.CreateObject("InternetExplorer.Application")
 
    objIE.width=300
 
    objIE.height=150
 
    objIE.navigate "about:blank"
 
    objIE.left=fix((objIE.document.parentwindow.screen.availwidth-objIE.width)/2)
 
    objIE.top=fix((objIE.document.parentwindow.screen.availheight-objIE.height)/2)
 
    objIE.Navigate "http://www.example.com/cron.php"
 
    objIE.Toolbar = false
 
    objIE.Visible = true
 
    do_check

保存为硬盘上的一个文件,如sitecron.vbs,然后在计划任务里配置成N分钟执行一次即可。这样用户不会看到cron的错误提示。
希望对大家有帮助!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Go