首页 文章

使用cpanel的codeigniter中的cronjob

提问于
浏览
6

我的网站托管服务器是hostmonster.com .

我的应用程序使用codeigniter框架 .

我有一个代码,可以向我的用户发送电子邮件,我想让它自动化 .

我已经使用了托管服务的cpanel,我尝试将命令作为

php -q www.mysite.com/admin admin sendDailyEmail

我的控制器是admin,方法是sendDailyEmail,控制器存在于application / controllers / admin文件夹中 .

每当cronjob运行时,我也会向我发送提醒电子邮件 .

电子邮件主题读取

Cron php -q / home1 / username / public_html / admin admin sendDailyEmail

身体说

未指定输入文件

我哪里出错了 .

我从来没有跑cronjobs,这是我第一次 . 我也不擅长命令行设置 .

我的admin sendDailyEmail代码如下

function sendDailyEmail() {
    $data = $this->admin_model->getDailyData();
    foreach ($data as $u) {
    if($u->Daily){
     //if(!$u->Amount){
       if ($u->Email=='myemail@gmail.com') {

                $user['user_data']['FirstName'] = $u->FirstName;
                $user['user_data']['LastName'] = $u->LastName;
                $user['user_data']['Id']=$u->Id;

                $this->email->clear();
                $this->email->to($u->Email);
                $this->email->from('alerts@mysite.com', 'MySite');
                $this->email->subject("My Subject");
                $msg = $this->load->view('emails/daily_view', $user, true);
                $this->email->message($msg);
                if ($this->email->send())
                    $data['message'] = "Daily Emails has been sent successfully";
                else
                    $data['message'] = "Daily Emails Sending Failed";
            }
        }
    }
    $data['main_content']['next_view'] = 'admin_home_view';
    $this->load->view('includes/admin_template', $data);
}

4 回答

  • 0

    您可以使用 wget 并设置您喜欢的时间:

    wget http://www.mysite.com/admin/sendDailyEmail
    

    你也可以使用 curl

    curl --silent http://www.mysite.com/admin/sendDailyEmail
    
  • 11

    For CodeIgniter 2.2.0

    你可以试试这个:

    php-cli /home/username/public_html/index.php controller method
    

    或者在你的情况下

    php-cli /home/username/public_html/index.php admin sendDailyEmail
    

    它适用于我..干杯!

  • 12

    Codeigniter为运行crons等设置命令行的方式不同

    阅读:http://www.codeigniter.com/user_guide/general/cli.html

    所以你应该运行:

    php index.php admin admin sendDailyEmail
    

    (可能需要调整;基于上面的代码)

    看看我刚才写的一篇文章,它更深入地介绍了一切:

    http://codebyjeff.com/blog/2013/10/setting-environment-vars-for-codeigniter-commandline

  • 3

    我面临同样的问题,但是跟着我的工作

    wget http://www.yoursite.com/controller/function
    

相关问题