Laravel 5 schedule not working(Laravel 5 计划不起作用)
问题描述
我的 Laravel 版本是 5.0.28,我在 cloud9 上构建,并且在我的 cron 中添加了这个命令:
My laravel version is 5.0.28, I build on cloud9, and I added this command to my cron:
#!/bin/bash
PATH=/usr/bin
* * * * * php /home/ubuntu/workspace/app/artisan scheduled:run 1>> /dev/null 2>&1
我在我的 Kernel.php 中添加了此代码.我参考了这个网站:https://laravel-news.com/2014/11/laravel-5-scheduler/
I added this code on my Kernel.php. I referenced this site: https://laravel-news.com/2014/11/laravel-5-scheduler/
<?php namespace AppConsole;
use IlluminateConsoleSchedulingSchedule;
use IlluminateFoundationConsoleKernel as ConsoleKernel;
use AppHttpControllersApiController;
class Kernel extends ConsoleKernel {
protected $commands = [
'AppConsoleCommandsInspire',
];
protected function schedule(Schedule $schedule)
{
$schedule->call('ApiController@test_job')->hourly();
}
}
我等了一会儿还是不行,所以我尝试使用命令php artisan schedule:run,我得到:没有准备好运行的预定命令.代码>
I waited and it still didn't work, so I tried to use the command php artisan schedule:run, and I got: No scheduled commands are ready to run.
我搜索并找到了这个答案:Laravel 5类不存在"使用调度器时
I searched and found this answer: Laravel 5 "Class does not exist" when using the scheduler
所以我修改了我的代码.另外,这段代码没有指定时间,所以我修改了我的 cron 来指定时间,但它仍然不起作用.我没有更多的想法.请帮忙.谢谢.
So I modified my code. Also, this code had no specified time, so I modified my cron to specify a time, but it still doesn't work. I have no more ideas. please help. Thanks.
代码
$schedule->call(join('@', [ApiController::class, 'test_job']));
cron
0 0,3,6,9,12,15,18,21 * * * php /home/ubuntu/workspace/app/artisan schedule:run 1>> /dev/null 2>&1
30 1,4,7,10,13,16,19,22 * * * php /home/ubuntu/workspace/app/artisan schedule:run 1>> /dev/null 2>&1
推荐答案
Laravel 调度程序 适用于命令,而不适用于控制器方法:
Laravel scheduler works with commands, not with controller methods:
- 创建命令:
php artisan make:command PurchasePodcast
- 编辑命令:
namespace AppConsoleCommands;
use IlluminateConsoleCommand;
class PurchasePodcast extends Command
{
protected $name = 'purchase:podcast';
public function fire()
{
// do stuff here
}
}
- 向
ConsoleKernel.php添加命令:
protected $commands = [
'AppConsoleCommandsPurchasePodcast',
];
- 在调度程序中使用命令:
$schedule->command('purchase:podcast')->hourly();
这篇关于Laravel 5 计划不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Laravel 5 计划不起作用
基础教程推荐
- PHP 类:全局变量作为类中的属性 2021-01-01
- 如何在 Laravel 5.3 注册中添加动态下拉列表列? 2021-01-01
- Cron Jobs 调用带有变量的 PHP 脚本 2022-01-01
- 学说 dbal querybuilder 作为准备好的语句 2022-01-01
- 有什么方法可以用编码 UTF-8 而不是 Unicode 返回 PHP`json_encode`? 2021-01-01
- 如何在 Laravel 中使用 React Router? 2022-01-01
- 在PHP中根据W3C规范Unicode 2022-01-01
- YouTube API v3 点赞视频,但计数器不增加 2022-01-01
- PHP PDO MySQL 查询 LIKE ->多个关键词 2021-01-01
- 如何替换eregi() 2022-01-01
