thinkphp 定时任务
时间: 2023-09-19 21:09:26 浏览: 118
基于thinkphp5框架的定时执行任务
ThinkPHP 提供了一个方便的定时任务组件 `Crontab`,可以用于执行定时任务,例如定时发送邮件、定时清理缓存等。以下是使用 ThinkPHP 的 `Crontab` 组件执行定时任务的步骤:
1. 安装 `Crontab` 组件
使用 Composer 安装 `topthink/think-crontab` 组件:
```
composer require topthink/think-crontab
```
2. 配置 `Crontab` 组件
在 `config/crontab.php` 配置文件中定义定时任务,例如:
```
return [
// 定时任务列表
'tasks' => [
// 每分钟执行一次
[
'type' => 'command',
'command' => 'email:send',
'expression'=> '* * * * *',
],
// 每天凌晨执行一次
[
'type' => 'command',
'command' => 'cache:clear',
'expression'=> '0 0 * * *',
],
],
];
```
3. 注册 `Crontab` 组件
在 `config/app.php` 配置文件中注册 `Crontab` 组件:
```
return [
// 服务列表
'services' => [
// 注册 Crontab 组件
\think\crontab\Service::class,
],
];
```
4. 启动 `Crontab` 服务
启动 `Crontab` 服务:
```
php think crontab:start
```
5. 执行定时任务
`Crontab` 组件会自动按照配置文件中定义的定时任务执行,无需手动执行。
注意事项:
- `Crontab` 组件依赖于 Swoole 扩展,使用前需要安装 Swoole 扩展;
- `Crontab` 组件不能在 Windows 环境下运行;
- `Crontab` 组件只能在 CLI 模式下运行,不能在 Web 模式下运行。
阅读全文