当我经常运行命令时,我会从/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
有人有建议吗?
由于
答案 0 :(得分:2)
见这里:
https://laravel.com/docs/5.6/scheduling
您可以将<?php
namespace App\Console;
use DB;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
//
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
DB::table('recent_users')->delete();
})->daily();
}
}
添加到您的cron选项卡中,该选项卡运行artisan schedule:运行,然后您将控制台命令添加到计划内核及其计划参数中,laravel处理其余的:)
来自文档:
*/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
而不是
{{1}}
答案 1 :(得分:0)
在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