在laravel 5.7应用程序中,我遇到一个问题,即在错误的时间接收到带有电子邮件发送的计划任务。 在我的ubuntu 16的crontab中的Digital Ocean Server下,使用命令: 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 pm收到了它。
我重新启动了cron,apache和OS。
错误在哪里以及如何解决?
谢谢!
答案 0 :(得分:1)
您可以更改app / config.php的“时区”。
这将为项目设置默认时区。
要发送邮件而不是设置cron,则应设置队列功能。