【问题标题】:PHP CRON Job within CodeIgniter frameworkCodeIgniter 框架中的 PHP CRON 作业
【发布时间】:2013-01-08 00:22:40
【问题描述】:

我正在尝试创建一个 CRON 作业,该作业指向我构建的 Code Igniter 系统中文件内的一个函数。 我已经在我的 CPanel 上创建了 CRON 作业,并使用根目录下的文件中的简单邮件 php 函数对其进行了测试,并且可以正常工作,但是,我希望将 CRON 作业指向我的 MVC 框架中的某个位置,并且对于一些原因这似乎不起作用。

这是在我的 CPanel 上设置的 CRON 作业:

0 0 * * 1 wget -q -O /dev/null http://www.urlhere.co.uk/index.php/cron_event/send_reminders

这是我希望运行的控制器。它的位置在system/controllers/cron_event.php:

<?php

class Cron extends Controller {

function Cron_event()
{
    parent::Controller();
}


/**
 * The index method just displays an access denied message, as we don't support viewing this module in the browser.
 */
function index()
{
    $this->send_reminders();
    $this->load->view('themes/base/header', array('title'=>"Access Denied"));
    $this->load->view('cron/access_denied');
    $this->load->view('themes/base/footer');


}


/**
 * Updates the PR Online Calendar by sending out email notifications for events that have not yet had them sent out.
 */

public function send_reminders() {
    $to = 'jamesholman@urlgoeshere.co.uk';
    $from = 'bigwavetest';
    $message = 'test';

    mail($to, $from, $message); 
}
}

?>

当我指向这个控制器时,CRON 作业停止工作。
我有一种感觉,因为我没有包含和需要 Code Igniter 框架文件,但我不确定。 有人对为什么这不起作用有任何想法吗?
提前致谢!

【问题讨论】:

  • 应用中是否实现了访问控制或登录机制?
  • 啊,是的,我没想到。是的,实现了一个登录系统。这会导致问题吗?
  • 您必须从登录机制中排除 Cron_event 控制器。您无法使用 cron 登录。
  • 好的,谢谢。我现在可以工作了! :)

标签: php codeigniter cron


【解决方案1】:

在您的 cron 调用中:

wget -q -O /dev/null http://www.urlgoeshere.co.uk/index.php cron_event

我想一定是:

wget -q -O /dev/null http://www.urlgoeshere.co.uk/index.php/cron_event

或者:

wget -q -O /dev/null http://www.urlgoeshere.co.uk/cron_event

如果您从 URL 中删除了 index.php。

【讨论】:

  • 所以问题是登录机制还是不正确的url调用?
  • 我更改了对问题进行排序的 URL。 :)
  • 这是否仍然适用,如果是,那么$this-&gt;input-&gt;is_cli_request() 有什么用?
猜你喜欢
  • 2011-11-11
  • 2013-03-05
  • 2011-01-15
  • 2010-10-23
  • 2016-02-23
  • 2015-01-21
  • 2012-02-23
相关资源
最近更新 更多