Задать вопрос
IgorVader
@IgorVader

Не работает schedule в Docker?

laravel работает в докере
Ранее все работало при запуске контейнера запускается такой скрипт
if [ "$APP_ROLE" = "app" ]; then
	echo "App role"
	#php /var/www/artisan migrate
elif [ "$APP_ROLE" = "cron" ]; then
	echo "Cron role"
	while [ true ]
	do
		#php /var/www/artisan schedule:run --verbose --no-interaction &
		php artisan job:dispatch ProcessParser
		php artisan job:dispatch ProcessParser &
		sleep 10
		php artisan job:dispatch checkTestimony
		php artisan job:dispatch checkTestimony &
		sleep 10
		php artisan job:dispatch SenderSms
		php artisan job:dispatch SenderSms &
		sleep 60
	done
else
    echo "Could not match the container role \"$APP_ROLE\""
    exit 1
fi

но выяснилось , что очередь не создается

при запуске schedule:run из контейнера скрипт работает пару секунд
при команде schedule:list список пуст

Kernel.php
<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Jobs\ProcessParser;
use App\Jobs\checkTestimony;
use App\Jobs\SenderSms;
use App\Jobs\ClearingOldReadings;
use Illuminate\Support\Facades\Log;

class Kernel extends ConsoleKernel
{
    protected function schedule(Schedule $schedule)
    {
        echo "run schedule";
        Log::info("run schedule");
        $schedule->job(new ClearingOldReadings)->daily();
        $schedule->job(new ProcessParser)->everyTwoMinutes();
        $schedule->job(new checkTestimony)->everyTwoMinutes();
        $schedule->job(new SenderSms)->everyMinute();
    }

    protected function commands()
    {
        $this->load(__DIR__.'/Commands');

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

Добавил echo "run schedule"; при запуске schedule из контейнера выводит сообщение "run schedule"
  • Вопрос задан
  • 256 просмотров
Подписаться 1 Средний 9 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы