Laravel Cronjob Dailyat不工作

yws3nbqq  于 2022-11-26  发布在  其他
关注(0)|答案(4)|浏览(187)

我正在进行一个在线竞赛。每天晚上23:59,使用Laravel中的cronjob将选出一个赢家。当我使用everyminute时,它工作正常。但是如果我将它更改为dailyAt('23:59')或cron(59 23 * * *),它就不工作了。这是我运行cronjob的命令:

protected function schedule(Schedule $schedule)
{
    // $schedule->command('inspire')
    //          ->hourly();
    $schedule->command('pick:winner')->everyMinute(); //we should use dailyAt but this is not working;
}
vwkv1x7d

vwkv1x7d1#

显然时区有问题,我住在比利时。所以一切都提前2个小时执行。所以我不得不设置我的cronjobs不同。

dailyAt('21:59')//does cronjob at 23:59
shstlldc

shstlldc2#

尝试添加时区,如下所示:

$schedule->command('pick:winner')->dailyAt('23:59')->timezone('Your/Timezone');
xytpbqjk

xytpbqjk3#

你应该试试这个:
您可以在kernel.php中使用自定义cron计划,如下所示:

$schedule->command('myTask')
         ->cron('* * * * *');

希望这对你有帮助

wfveoks0

wfveoks04#

我也遇到过同样的问题。但这个方法对我很有效!问题是cpanel服务器上的服务器时间不同。这就是为什么我必须使用时区来获取crojob工作!你必须在cpanel cronjob上设置每分钟的脚本-〉

*   *   *   *   *   /usr/local/bin/php /home/here_your_cpanel_username/public_html/your_project_folder_name/artisan schedule:run >> /dev/null 2>&1

在您的laravel项目kernel.php文件中-〉

protected function schedule(Schedule $schedule)
{
    // $schedule->command('absent:cron')->daily();
$schedule->command('absent:cron')->timezone('Asia/Kolkata')
->dailyAt('23:30');
}

相关问题