开发者

cron job with CakePHP

开发者 https://www.devze.com 2023-01-06 11:20 出处:网络
I have referred http://bakery.cakephp.org/articles/view/calling-controller-actions-from-cron-and-the-command-line and created cron_dispatcher.php and placed it in the app folder.

I have referred http://bakery.cakephp.org/articles/view/calling-controller-actions-from-cron-and-the-command-line and created cron_dispatcher.php and placed it in the app folder.

I have return some test email function for the cron job to run in my users controller's test method.

And i have created a Cron job in my web server's control panel like

"/usr/bin/php/home4/enventur/public_html/pennystock/cron_dispatc开发者_Python百科her.php /users/test"

But its giving me an error as "No input file specified."

Please help me, how to solve it ??

Thanks in Advance


I have done it in different way,

Please see the steps, it may helpful for others..

Cron/Shell Using Cakephp Framework Structure:

  1. create

    F:\websites\projectname\app\vendors\shells\filename.php

    class ClassName extends Shell {
        //var $uses = array('Post'); //name of Model
    
        //Main function runs always when shell executes
        function main() {
            mail("nidhin@2basetechnologies.com","Test","Test");
        }
    }
    

2.set 754 permission to F:\websites\projectname\cake\console\cake

  1. Set cron job as /home4/enventur/public_html/pennystock/cake/console/cake -app "/home4/enventur/public_html/pennystock/app" ClassName >/dev/null 2>&1

    /dev/null 2>&1: for Suppressing warning/error/msg from server

Thank you Nidhin


Sounds like PHP cannot find the file you specified. Check that the path is correct. For example:

# incorrect path
/home4/enventur/public_html/pennystock/cron_dispatcher.php

# correct path (?)
/home4/enventur/public_html/pennystock/app/cron_dispatcher.php

Now, this next part doesn't directly answer your question, but it's worth noting that CakePHP shells are intended for this exact purpose.

If you created a shell called Mailer and copied your UsersController::test() code to MailerShell::test(), you would call that from cron like this (again, check the paths are correct):

/home4/enventur/public_html/pennystock/cake/console/cake -app /home4/enventur/public_html/pennystock/app mailer test

With this approach, you wouldn't have to use cron_dispatcher.php as noted in that ancient Bakery article (written for CakePHP 1.1 on Christmas 4 years ago).


The cron job is a long running process that executes commands at specific dates and times.

Go to your domain cpanel account.

First make the file which you want to run the code using cron job. and upload the file on your website root folder.

Now Go to "Cron job" section in your cpanel account and enter the file path in textbox and set the time shedule which you want to run the file.

Thanks.

0

精彩评论

暂无评论...
验证码 换一张
取 消