I have faced a lot of problems to run schedule jobs in Laravel.
I am using Ubuntu 14.04 and i spent a lot of time to make it work.
Here i wrote down the basic procedure that i followed.
First
To run scheduled jobs first you have to create a new command. To make a command go to your project directory and run following code in terminal:
If you go to app/Console/Commands directory you'll see a new Hello.php class created.
Now change the signature variable and give a name of your newly created command
Now go to app/Console/kernal.php and update commands variable
Don't forget to add namespace for Hello.php clas.I am using Ubuntu 14.04 and i spent a lot of time to make it work.
Here i wrote down the basic procedure that i followed.
First
To run scheduled jobs first you have to create a new command. To make a command go to your project directory and run following code in terminal:
php artisan make:console Hello
If you go to app/Console/Commands directory you'll see a new Hello.php class created.
Now change the signature variable and give a name of your newly created command
protected $signature = 'Hello';Now change the description of the command if you like.
Now go to app/Console/kernal.php and update commands variable
protected $commands = [ Hello::class,];
Now in handle function we want to do what ever we want. In this example we want to return 'Hi Rashed';
public function handle(){ Log::info('i was here ');}and add use Log; at the of the Hello.php
Now Add following code in schedule function on kernal.php file.
protected function schedule(Schedule $schedule){ $schedule->command('Hello')->everyMinute();}So you can see i am trying to run Hello command in every minutes.
Now Everything is ready and all we have to do is setting up a cron for this project.
To do so, open a terminal and type
corntab -e
Now add following line :
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1