запланированные задачи В приложении laravel 5.7 запущено не вовремя - PullRequest
0 голосов
/ 05 июня 2019

В приложении laravel 5.7 у меня проблема с тем, что запланированные задания с отправкой электронной почты получаются в неподходящее время. в моем Ubuntu 16 под Digital Ocean Server в crontab с командой: crontab -e

Я добавил строку:

* * * * * cd /var/www/html/the-box-booking && php artisan schedule:run >> /dev/null 2>&1

php в браузере показывает следующее:

PHP Version 7.1.17-1+ubuntu16.04.1+deb.sury.org+1
...
date
date/time support   enabled
timelib version 2016.05
"Olson" Timezone Database Version   0.system
Timezone Database   internal
Default timezone    Asia/Dubai
Directive   Local Value Master Value

date.default_latitude        31.7667     31.7667
date.default_longitude       35.2333     35.2333
date.sunrise_zenith          90.583333   90.583333
date.sunset_zenith           90.583333   90.583333
date.timezone                Asia/Dubai  Asia/Dubai

Полагаю, консольная команда использует конфигурации cli. Я проверяю в командной строке:

 php -v
PHP 7.1.17-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May  5 2018 04:55:21) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.17-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Я открываю /etc/php/7.1/cli/php.ini и вижу:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Dubai
Timezone = Asia/Dubai

В bootstrap / app.php я добавил строку:

date_default_timezone_set('Asia/Dubai');

В app / Console / Kernel.php я добавил строку:

protected function schedule(Schedule $schedule)
{
    \Log::info( 'report:available-spaces-by-zones Report run # ' . time()  );
    $schedule->command('report:available-spaces-by-zones')->daily('18:00');
}

В результате я вижу много информационных строк в моих журналах, но время отправки отчета отличается. Сегодня я получил это в 21:00.

Я перезапустил cron, apache и ОС.

Где ошибка и как ее исправить?

Спасибо!

1 Ответ

1 голос
/ 05 июня 2019

Вы можете изменить «часовой пояс» в app / config.php.

, это установит часовой пояс по умолчанию для проекта.

и для отправки почты вместо установки cron вы должны установитьФункциональность очереди.

Ссылка: https://laravel.com/docs/5.7/queues

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...