Laravel Cronless Schedule 使用教程
1. 项目的目录结构及介绍
Laravel Cronless Schedule 项目的目录结构如下:
spatie/laravel-cronless-schedule/
├── src/
│ ├── Commands/
│ │ └── RunCronlessSchedule.php
│ ├── CronlessScheduleServiceProvider.php
│ └── Support/
│ └── CronlessSchedule.php
├── tests/
│ └── Unit/
│ └── RunCronlessScheduleTest.php
├── .editorconfig
├── .gitattributes
├── .gitignore
├── .php_cs.dist
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── composer.json
├── phpunit.xml.dist
目录介绍
src/
: 包含项目的核心代码。Commands/
: 包含 Artisan 命令的实现。RunCronlessSchedule.php
: 实现schedule:run-cronless
命令。
CronlessScheduleServiceProvider.php
: 服务提供者,用于注册和引导服务。Support/
: 包含支持类和辅助函数。CronlessSchedule.php
: 实现 Cronless 调度逻辑。
tests/
: 包含项目的单元测试。Unit/
: 单元测试目录。RunCronlessScheduleTest.php
: 针对RunCronlessSchedule
命令的单元测试。
.editorconfig
: 编辑器配置文件。.gitattributes
: Git 属性配置文件。.gitignore
: Git 忽略文件配置。.php_cs.dist
: PHP CS Fixer 配置文件。CHANGELOG.md
: 变更日志。LICENSE.md
: 许可证文件。README.md
: 项目说明文档。composer.json
: Composer 依赖管理文件。phpunit.xml.dist
: PHPUnit 配置文件。
2. 项目的启动文件介绍
项目的启动文件主要是 src/CronlessScheduleServiceProvider.php
。这个文件是 Laravel 服务提供者,负责注册和引导 Cronless Schedule 服务。
namespace Spatie\CronlessSchedule;
use Illuminate\Support\ServiceProvider;
class CronlessScheduleServiceProvider extends ServiceProvider
{
public function boot()
{
if ($this->app->runningInConsole()) {
$this->commands([
Commands\RunCronlessSchedule::class,
]);
}
}
public function register()
{
// 注册服务
}
}
主要功能
boot()
: 在应用启动时注册RunCronlessSchedule
命令。register()
: 注册服务(如果有需要)。
3. 项目的配置文件介绍
Laravel Cronless Schedule 项目没有独立的配置文件,所有的配置都是通过命令行参数来完成的。以下是一些常用的命令行参数:
启动 Cronless Schedule
php artisan schedule:run-cronless
设置调度频率
php artisan schedule:run-cronless --frequency=5
运行特定命令
php artisan schedule:run-cronless --command=your-favorite-artisan-command
设置运行时间
php artisan schedule:run-cronless --stop-after-seconds=5
通过这些命令行参数,可以灵活地配置和运行 Cronless Schedule。