单进程
<?php
use Workerman\Worker;
use Workerman\Lib\Timer;
// 定义应用目录
define('APP_PATH', __DIR__ . '/application/');
// 加载框架引导文件
require __DIR__ . '/thinkphp/base.php';
##################################### 定时任务 #####################################
// 创建一个 Worker 实例
$worker = new Worker();
// 设置定时任务的时间间隔(单位:秒)
$interval = 1;
// 设置定时任务的回调函数
$worker->onWorkerStart = function () use ($interval) {
// 在定时任务启动时执行一次
echo "定时任务已启动\n";
// 创建一个定时器,每隔指定时间间隔执行一次回调函数
Timer::add($interval, function () {
// 在定时任务的回调函数中执行需要定时执行的操作
echo "定时任务执行:当前时间为" . date('Y-m-d H:i:s') . "\n";
$url = "http://www.example.com/api/demo/abc";
$content = file_get_contents($url);
echo $content . "\n";
});
};
// 运行所有 Worker 实例
Worker::runAll();
##################################### 定时任务 #####################################
多进程
<?php
use Workerman\Worker;
use Workerman\Lib\Timer;
// 定义应用目录
define('APP_PATH', __DIR__ . '/application/');
// 加载框架引导文件
require __DIR__ . '/thinkphp/base.php';
##################################### 定时任务 #####################################
// 创建一个 Worker 实例
$worker = new Worker();
// 设置进程数量
$worker->count = 4;
// 设置定时任务的时间间隔(单位:秒)
$interval = 3;
// 设置定时任务的回调函数
$worker->onWorkerStart = function (Worker $worker) use ($interval) {
// 在定时任务启动时执行一次
echo "定时任务已启动\n";
// 获取当前进程的编号
$processID = $worker->id;
// 创建一个定时器,每隔指定时间间隔执行一次回调函数
Timer::add($interval, function () use ($processID) {
// 在定时任务的回调函数中执行需要定时执行的操作
echo "定时任务执行:当前时间为" . date('Y-m-d H:i:s') . "\n";
if ($processID == '0') {
$processName = 'abc';
$url = "http://www.example.com/api/demo/abc";
} elseif ($processID == '1') {
$processName = 'bcd';
$url = "http://www.example.com/api/demo/bcd";
} elseif ($processID == '2') {
$processName = 'cde';
$url = "http://www.example.com/api/demo/cde";
} elseif ($processID == '3') {
$processName = 'def';
$url = "http://www.example.com/api/demo/def";
}
$response = file_get_contents($url);
echo '进程 ' . $processID . ' 访问的方法为 ' . $processName . ' ' . $response;
echo "\n-----------------------------------------------------------------\n";
});
};
// 运行所有 Worker 实例
Worker::runAll();
##################################### 定时任务 #####################################