php-micro-file-server/start.php

57 lines
1.7 KiB
PHP
Raw Normal View History

2024-09-12 22:11:31 +08:00
<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use Workerman\Lib\Timer;
use GuzzleHttp\Client;
use think\Env;
// 读取环境变量
$env = new Env();
2024-09-13 10:42:11 +08:00
$serverAddr = $env->get('HTTP_HOST', '192.168.1.161:8000');
2024-09-13 10:03:52 +08:00
$nacosAddr = $env->get('NACOS_ADDR', '192.168.1.105:8848');
2024-09-12 22:11:31 +08:00
$task = new Worker();
// 定时触发邮件发送任务
// 开启多少个进程运行定时任务,注意业务是否在多进程有并发问题
$task->count = 1;
2024-09-13 10:03:52 +08:00
$task->onWorkerStart = function(Worker $task) use ($serverAddr, $nacosAddr)
2024-09-12 22:11:31 +08:00
{
$client = new Client([
// nacos地址
2024-09-13 10:03:52 +08:00
"base_uri" => $nacosAddr,
2024-09-12 22:11:31 +08:00
"timeout" => 5
]);
// 每2.5秒执行一次
2024-09-13 10:03:52 +08:00
Timer::add(5, function() use ($client, $serverAddr)
2024-09-12 22:11:31 +08:00
{
2024-09-13 10:03:52 +08:00
list ($serverIP, $serverPort) = explode(':', $serverAddr);
2024-09-12 22:11:31 +08:00
$response = $client->request("put", "/nacos/v1/ns/instance/beat", [
"form_params" => [
"serviceName" => "zeroerroa-file",
"ip" => $serverIP,
"port" => $serverPort,
"namespaceId" => "0a1c32f2-dea1-4ec1-b546-cb4635cd7db2",
"groupName" => "DEFAULT_GROUP",
"beat" => '{
"cluster": "DEFAULT",
"ip": "' . $serverIP . '",
"metadata": {},
"port": "' . $serverPort . '",
"scheduled": true,
"serviceName": "zeroerroa-file",
"weight": 1
}'
],
]);
2024-09-13 10:53:01 +08:00
echo "send heartbeat: " . $response->getBody()->getContents() . "\n";
echo json_encode($_ENV, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
2024-09-12 22:11:31 +08:00
echo "\n";
});
};
// 运行worker
Worker::runAll();