У меня Laravel проблема cron. В Console Kernel я определил задание, которое будет нажимать на Rollovercron. php файл каждые 10 минут, и каждый раз, когда он будет попадать, он будет проходить одну страну. По крайней мере 100 стран определены в массиве и будут передаваться по очереди в Rollovercron. php в соответствии с foreach l oop. Rollovercron. php Для запуска одной страны требуется не менее 2 часов.
У меня несколько проблем с этим заданием cron:
100 элементов в массиве не получаются Один за другим означает, что я вижу, что страна «GH» (Гана) работает 5 раз непрерывно, и многие страны пропускаются.
всякий раз, когда я получаю пропущенную страну, я делаю это composer часто обновляйте и очищайте кеш.
Я хочу, чтобы мой cron работал без перебоев и выбирал все страны, которые не должна пропустить ни одна страна, и мне не нужно делать composer обновление для это все время.
Пожалуйста, помогите мне в этом, борясь за это много месяцев.
ниже - Ядро. php файл:
<?php
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();
}
foreach ($countrylist as $country) {
$schedule->command('mainRollover:send ' . $country)
->daily()
->withoutOverlapping();
}
$schedule->command('filingStatusRejectionQueue')
->hourly()
->withoutOverlapping();
$schedule->command('Bookingcountupdate')
->everyTenMinutes()
->withoutOverlapping();
$schedule->command('preAlert')
->hourly()
->withoutOverlapping();
}
protected function commands()
{
require base_path('routes/console.php');
}
}
/**
* Register the Closure based commands for the application.
*
* @return void
*/