When I am trying to run Task Schedular on localhost(php version : PHP 5.6.4-4ubuntu6.4 (cli)) it is working perfectly.
crontab
* * * * * php /home/aishatest/public_html/Aisha/Aisha/artisan schedule:run >> /dev/null 2>&1
App/Console/Kernel.php
<?php
namespace App\Console;
use App\Console\Commands\CheckOutfitAvailibilityCommand;
use App\Http\Controllers\OutfitCronController;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
// Commands\Inspire::class,
CheckOutfitAvailibilityCommand::class
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
\Log::error("Kernel");
//$schedule->command('inspire')
// ->everyMinute();
$schedule->command('CheckOutfitCommand')->cron('* * * * *');
}
}
App/Console/Command/CheckOutfitAvailibilityCommand.php
<?php
namespace App\Console\Commands;
use App\Http\Controllers\OutfitCronController;
use Illuminate\Console\Command;
class CheckOutfitAvailibilityCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
private $outfitCronController;
protected $signature = 'CheckOutfitCommand';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct(OutfitCronController $outfitCronController)
{
parent::__construct();
$this->outfitCronController = $outfitCronController;
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
\Log::error("command handle");
$this->outfitCronController->checkOutfitAvailability();
}
}
But when I am trying to run on CentOs Server(php version PHP 5.6.26 (cli)) it is giving error as follow
./storage/logs/laravel.log
[2016-09-22 05:54:02] local.ERROR: Kernel
[2016-09-22 05:54:05] local.ERROR: exception 'ErrorException' with message 'Invalid argument supplied for foreach()' in /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Input/ArgvInput.php:281
Stack trace:
#0 /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Input/ArgvInput.php(281): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Invalid argumen...', '/home/aishatest...', 281, Array)
#1 /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Application.php(743): Symfony\Component\Console\Input\ArgvInput->hasParameterOption(Array, true)
#2 /home/aishatest/public_html/Aisha/Aisha/vendor/symfony/console/Application.php(114): Symfony\Component\Console\Application->configureIO(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#3 /home/aishatest/public_html/Aisha/Aisha/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(107): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 /home/aishatest/public_html/Aisha/Aisha/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 {main}
And if I try to run below command manually in the terminal,then also it is works perfectly.
php /home/aishatest/public_html/Aisha/Aisha/artisan schedule:run
I tried to find the solution, but couldnt find any.
use the absolute path for php
/usr/local/bin/php /path/to/artisan schedule:run >> /dev/null 2>&1
i had the same problem. cron jobs within the Kernels schedule() function worked, but any time i tried calling a console command, it throw an exception.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With