Laravel Cron运行计划未在服务器上自动运行
我在Laravel-5.8应用程序中有这个cron作业代码: 应用程序/控制台/命令:Laravel Cron运行计划未在服务器上自动运行,laravel,laravel-5.8,cron-task,Laravel,Laravel 5.8,Cron Task,我在Laravel-5.8应用程序中有这个cron作业代码: 应用程序/控制台/命令: <?php namespace App\Console\Commands; use Illuminate\Console\Command; use App\Models\Hr\HrDesignation; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; use Illuminate\Support\
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Models\Hr\HrDesignation;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Auth;
use Exception;
use Notification;
use GuzzleHttp\Client;
use GuzzleHttp\ClientInterface;
use GuzzleHttp\Exception\GuzzleException;
class UpdateCreateDesignation extends Command
{
protected $signature = 'updatecreatedesignations';
protected $description = 'Update or Create Designation';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$client = new Client();
$res = $client->request('GET','https://api.cloudjkk.net/jkkapp/profile/all-designations', [
'query' => ['key' => 'dddddd']
])->getBody();
$clientdatas = json_decode($res->getContents(), true);
foreach($clientdatas as $clientdata)
{
if ($clientdata['job_title']) {
$designation = HrDesignation::updateOrCreate([
'designation_name' => $clientdata['job_title']
],
[
'description' => $clientdata['job_description'],
'company_id' => 1,
]);
}
}
}
}
您需要确保已在crontab中启用调度程序
Laravel需要每分钟运行php artisan schedule:run
。如果当前时间为01:00
,则执行该任务
因此,您需要:
- 每分钟添加一个cronjob
***
- 转到项目的目录
cd/路径
- 运行artisan命令,该命令将匹配时间
php artisan计划:Run
如果使用->everyMinute()添加作业,则可以对此进行测试代码>
$schedule->command('increment-db-int')
->每分钟();
你安排了cronjob吗?@RonvarderHeijden-你是什么意思。这就是我所拥有的。在我的代码中,请参见kernel.php$schedule->command('updatecreatedesignations')->dailyAt('01:00')中的计划;“使用计划程序时,只需将以下Cron条目添加到服务器…”-。。。当我尝试此选项时,文档试图告诉您需要做什么:>root@MyServer:/var/www/html/jkkappt#php artisan schedule:run我得到了这个:>没有计划好的命令可以运行。这是意料之中的。现在不是凌晨1:00,是不是lol。如果你在linux服务器上托管,你有没有用crontab检查过这个条目?您可以使用crontab-e
命令行命令来编辑此内容。我该怎么做呢?这在我的注释中,crontab-e
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected $commands = [
'App\Console\Commands\UpdateCreateDesignation',
];
protected function schedule(Schedule $schedule)
{
$schedule->command('updatecreatedesignations')
->dailyAt('01:00');
}
protected function commands()
{
require base_path('routes/console.php');
}
}
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1