jeudi 23 janvier 2020

Laravel Cron job not running as accepted

I have Laravel cron issue ,In Console Kernel I have defined job which will hit Rollovercron.php file every 10 mins and every time it will hit it will pass one country. atleast 100 Countries are defined in an array and will be passed one by one to Rollovercron.php according to foreach loop. Rollovercron.php file takes minimum 2 hrs to run for single country.

I have multiple issues with this cron job:

  1. 100 elements in an array not getting fetched one by one means I can see 'GH' country(Ghana) has run for 5 times continuously and many of the countries are skipped.

  2. when ever I get country missing issue I do composer update and clear cache frequently.

I want my cron should run smoothly and fetch all countries not even single country should miss and I should not need to do composer update for this all the time.

Please help me in this ,struggling for this since many months.

bellow is Kernel.php file:

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;

use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

use DB;

class Kernel

extends ConsoleKernel

{

/**

  • The Artisan commands provided by your application.

*

  • @var array

*/

protected $commands = [

\App\Console\Commands\preAlert::class,

\App\Console\Commands\blCron::class,

\App\Console\Commands\mainRollover::class,

\App\Console\Commands\refilingSync::class,

\App\Console\Commands\TestCommand::class,

\App\Console\Commands\rollOverCron::class,

\App\Console\Commands\FrontPageRedis::class,

\App\Console\Commands\filingStatusRejectionQueue::class,

\App\Console\Commands\VesselDashboardRedis::class,

\App\Console\Commands\Bookingcountupdate::class,

// \App\Console\Commands\Voyagetwovisit::class,

];

/**

  • Define the application's command schedule.

*

  • @param \Illuminate\Console\Scheduling\Schedule $schedule

  • @return void

*/

protected function schedule(Schedule $schedule)

{

$countrylist=array('NL','AR','CL','EC','DE','PH','ID','TT','JM','KR','BE','VN','US','BR','CM','MG','ZA','MU','RU','DO','GT','HN','SV', 'PR','SN', 'TN', 'SI','CI','CR','GM','GN','GY','HR','LC','LR','MR','UY','KH','BD','TH','JP','MM','AT','IE','CH','LB','PY','KE','YT','TZ','MZ','NA','GQ','ME');

foreach ($countrylist as $country) {

$schedule->command('rollOverCron:send ' . $country)

->everyTenMinutes()

->withoutOverlapping()

->emailOutputTo(['ext.amourya@cma-cgm.com','EXT.KKURANKAR@cma-cgm.com']);

}

foreach ($countrylist as $country) {

$schedule->command('mainRollover:send ' . $country)

->daily()

->withoutOverlapping()

->emailOutputTo(['ext.amourya@cma-cgm.com','EXT.KKURANKAR@cma-cgm.com']);

}

$schedule->command('filingStatusRejectionQueue')

->hourly()

->withoutOverlapping()

->emailOutputTo(['ext.amourya@cma-cgm.com','EXT.KKURANKAR@cma-cgm.com']);

$schedule->command('Bookingcountupdate')

->everyTenMinutes()

->withoutOverlapping()

->emailOutputTo(['ext.amourya@cma-cgm.com','EXT.KKURANKAR@cma-cgm.com']);

$schedule->command('preAlert')

->hourly()

->withoutOverlapping()

->emailOutputTo(['ext.amourya@cma-cgm.com','EXT.KKURANKAR@cma-cgm.com']);

} protected function commands()

{

require base_path('routes/console.php');

}

}

/**

  • Register the Closure based commands for the application.

* * @return void

*/



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire