php - 如何使用 php artisan 执行 cron-job 命令?
问题描述
我对 php artisan cron 有一些问题。
目前,任务在 App\Console\Commands\task1.php 中
,而 cron 在 App\Console\Kernel.php 中定义
问题是:任务没有启动。
所以我尝试使用命令行创建一个新任务:
php path/to/artisan make:command task2
并创建了一个文件,但在 App\Commands 而不是 App\Console\Commands 中。
当尝试使用 列出现有的 cron 任务时artisan list
,我只得到:
vendor:publish Publish any publishable assets from vendor packages
我应该把我的命令放在哪里?
内核文件应该在哪里?
目前,Kernel.php 是:
<?php namespace App\Console;
use App\Commands\Task2;
use App\Console\Commands\Task1;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
protected $commands = [
Task1::class,
Task2::class,
];
protected function schedule(Schedule $schedule)
{
$schedule->command('task1')->daily();
$schedule->command(Task2::class)->daily();
}
}
Task1,使用命令行创建的,在 App\Commands 文件夹中:
<?php namespace App\Commands;
use Illuminate\Console\Command;
use Illuminate\Contracts\Bus\SelfHandling;
class Task1 extends Command implements SelfHandling {
protected $name = 'task1';
protected $description = 'Task1 test ';
public function handle()
{}
}
任务 2,在 App\Console\Commands 文件夹中:
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
class Task2 extends Command {
protected $name = 'task2';
protected $description = 'task 2 test';
public function handle()
{}
}
解决方案
你需要$signature
而不是$name
<?php namespace App\Commands;
use Illuminate\Console\Command;
use Illuminate\Contracts\Bus\SelfHandling;
class Task1 extends Command implements SelfHandling {
protected $signature = 'task1';
protected $description = 'Task1 test ';
public function handle()
{}
}
推荐阅读
- makefile - 在 make 中使用过滤器功能时出现意外结果
- npm - 如何更改通过电子框架生成的.exe的文件版本、产品和版权值
- rest - 在 JWT 的情况下,SPA 和移动应用程序是否会针对同一端点进行身份验证?
- javascript - Material-ui 主题父组件但不是同类型子组件
- javascript - Three.js:TypeError:无法读取未定义的属性“0”
- json - 参数类型“未来”不能分配给参数类型“列表”
' - c++ - Minio:为什么我的 PUT 请求失败了,即使 GET 成功了?
- excel - Power Query M 为导入的 json 中的每个嵌套记录添加行
- python - 试图优化我的复杂函数以在多项式时间内执行
- python - 有没有更快的方法来实现这个循环功能?