Cron job for a php artisan command



当我通常运行我的命令时,我从/var/www/project/html/current/执行,看起来像这样php artisan import:myData。这很好用。

但是在将其作为 cron 作业运行时我无法让它工作,我已经尝试了以下 cron 作业。

*/3 * * * 1-5 cd /var/www/project/html/current/ php artisan import:myData >/dev/null 2>&1
*/3 * * * 1-5 /var/www/project/html/current/ php artisan import:myData >/dev/null 2>&1
*/3 * * * 1-5 /usr/local/bin/php /var/www/project/html/current/ php artisan import:myData >/dev/null 2>&1

有人有建议吗?

谢谢

看这里:

https://laravel.com/docs/5.6/scheduling

您将* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1添加到cron选项卡中,该选项卡运行工匠schedule:run,然后将控制台命令添加到计划内核中,其中包含它们的调度参数,laravel处理其余:)

从文档中:

<?php
namespace AppConsole;
use DB;
use IlluminateConsoleSchedulingSchedule;
use IlluminateFoundationConsoleKernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //
    ];
    /**
     * Define the application's command schedule.
     *
     * @param  IlluminateConsoleSchedulingSchedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        $schedule->call(function () {
            DB::table('recent_users')->delete();
        })->daily();
    }
}

编辑:

您还指定了一条通往工匠的奇怪路径,请尝试:

*/3 * * * 1-5 cd /var/www/project/html/current/artisan import:myData >/dev/null 2>&1

而不是

*/3 * * * 1-5 cd /var/www/project/html/current/ php artisan import:myData >/dev/null 2>&1

在 crontab 中添加此作业

*/3 * * * 1-5 cd /var/www/project/html/current && php artisan import:myData >/dev/null 2>&1

您忘记将这些字符"&&"放在项目文件夹的路径和工匠命令之间

例:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

最新更新