drupal 写定时任务

    首先,不得不承认:drupal是一个独特的框架,我对于里面有太多的东西都不了解。这次写cron,花了我整整一天的时间。写下我的过程,以防止下次再出现同样的错误~
    drupal的cron,也许和大多数的php定时任务是相同的,也许不同。我也说不出特定的什么来~值得强调的是:drupa对于hook的运用,几乎发挥到了极致,只要是drupal,都不能够抛开这一个去思考问题~
    同样的,对于cron,本质上也是调用hook_cron。
    促使我去写cron的原因是:我安装了event,signup模块,用来创建和注册活动。测试的时候,我发现了一个问题,即:当一个用户注册事件之后,会发送一封“confirmed email”给注册的用户,我同样设置了在活动开始的前一天,给用户发送一封“reminder email”。但是我发现,系统并不会给用户发送这样的一封提醒邮件。于是查找原因,我发现,当网站“run cron”的时候,用户会收到邮件。
    我问我同事,同事告诉我,让系统一直运行cron,是不对的。但是我又找不到其他可以让系统发送提醒邮件的办法。于是想,我只运行提醒邮件的cron。
    我找到写提醒邮件的方法的php文件,即sites/all/modules/third/signup/includes/cron.inc文件。
    于是我写cron如下:
    *  *  *  *  *  php -f /home/example_path/sites/all/modules/third/signup/includes/cron.inc
    不运行
    我查了网上的一些资料,有的人,写的形式如下:
    *  *  *  *  *  /usr/local/bin/php /home/example_path/sites/all/modules/third/signup/includes/cron.inc
    即:把php -f 修改为/usr/local/bin/php ,这里“/usr/local/bin”是php环境的安装路径
    不运行
    我记得上次和一个同事,写cron的时候,也不运行,于是,谢了url链接,去运行cron
    我继续写了cron如下:
    *  *  *  *  *  /usr/bin/curl http://example/admin/reports/status/run-cron
    “admin/reports/status/run-cron“ 是我在管理员登录状态下,查找到的路径
    不运行
    我到google里搜关键字: drupal cron
    发现是要运行drupal的cron.php文件
    于是修改如下:
    *  *  *  *  *  /usr/bin/curl http://example/cron.php
    运行啦
    但是我总是觉得写链接不是很好,于是修改如下:
     *  *  *  *  *  /usr/local/bin/php /home/example_path/cron.php
    不运行
    我就郁闷了,怎么回事 ,我事后想了下,可能是php安装路径写错了
    继续修改如下:
     *  *  *  *  *  php -f /home/example_path/cron.php
    运行啦
 
    一路走下来,真是不容易啊~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章