Laravel 调度程序在 Dreamhost 中不工作 VPS

Laravel Scheduler not working in Dreamhost VPS

Laravel 调度程序在 Dreamhost VPS 中不起作用。

Dreamhost 有不允许每分钟通话的限制,所以我改为在 10 分钟通话中进行。但是,调度程序在任何情况下都不会触发。

我尝试了以下 cron 命令:

php ~/site.com/artisan schedule:run >> /dev/null 2>&1

cd / site.com && php artisan schedule:run >> /dev/null 2>&1

但两者都不行。

这是我 kernel.php

里面的东西
protected $commands = [
    'App\Console\Commands\DailyStatus',
];

/**
 * Define the application's command schedule.
 *
 * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
 * @return void
 */
protected function schedule(Schedule $schedule)
{

    $schedule->command('status:daily')
        ->timezone('Asia/Manila')
        ->dailyAt('6:50');

    $schedule->command('status:daily')
        ->timezone('Asia/Manila')
        ->daily()
        ->between('12:00','12:30')
        ->appendOutputTo(public_path().'status_daily_output.log')
        ->withoutOverlapping(60);

    $schedule->command('status:daily')
        ->timezone('Asia/Manila')
        ->dailyAt('12:15')
        ->appendOutputTo(public_path().'status_daily_at_output.log')
        ->withoutOverlapping(60);
}

也没有生成日志。我已经放置了一些 echo 命令,但它没有触发。

如何测试我的调度程序是否配置正确?

谁能帮我修改当前设置?

谢谢。

所以我在多次测试后设法让它工作。

  1. 确保你的账号可以执行命令

     crontab -e
    

    如果不能,请联系 Dreamhost 支持以修复权限。

  2. 对于您的 cron 命令,您需要指定 php

    的确切位置
    cd ~/site.com  && /usr/local/php72/bin/php artisan schedule:run >> /dev/null 2>&1
    
  3. 由于Dreamhost不允许每分钟执行一次,我建议改为每10分钟执行一次。

希望对您有所帮助!