tp6 多定时任务案例
时间: 2023-07-04 13:31:11 浏览: 91
好的,下面是一个使用Swoole定时任务的多任务示例:
1. 在config目录下创建swoole.php文件,添加以下代码:
```
<?php
return [
// 启用Swoole
'enable' => true,
// Swoole服务器配置
'server' => [
'host' => '0.0.0.0',
'port' => 9501,
'worker_num' => swoole_cpu_num(),
],
// 定时任务配置
'timer' => [
'enable' => true,
'jobs' => [
[
'name' => 'task1',
'type' => 'callback',
'rule' => '*/5 * * * * *',
'callback' => function () {
echo date('Y-m-d H:i:s') . ' task1' . PHP_EOL;
},
],
[
'name' => 'task2',
'type' => 'callback',
'rule' => '*/10 * * * * *',
'callback' => function () {
echo date('Y-m-d H:i:s') . ' task2' . PHP_EOL;
},
],
[
'name' => 'task3',
'type' => 'callback',
'rule' => '*/20 * * * * *',
'callback' => function () {
echo date('Y-m-d H:i:s') . ' task3' . PHP_EOL;
},
],
],
],
];
```
在这个例子中,我们定义了三个定时任务,分别是名称为task1、task2、task3,分别每5秒、10秒、20秒执行一次,任务的具体逻辑是输出当前时间和任务名称。
2. 在命令行中执行以下命令启动Swoole服务器:
```
php think swoole
```
3. 查看定时任务的输出,可以在命令行中看到每个任务按照定义的时间间隔执行,并输出当前时间和任务名称的信息。
需要注意的是,使用Swoole定时任务需要在命令行模式下运行,而不能在Web服务器中运行。
阅读全文