php-micro-file-server/start.php

58 lines
1.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;
use Workerman\Lib\Timer;
use GuzzleHttp\Client;
use think\Env;
// 读取环境变量
$env = new Env();
// wokerman里面能准确获取SERVER_ADDR变量没有HTTP_HOST变量
$serverAddr = $env->get('SERVICE_ADDR', '192.168.1.161:8000');
$nacosAddr = $env->get('NACOS_ADDR', '192.168.1.105:8848');
$task = new Worker();
// 定时触发邮件发送任务
// 开启多少个进程运行定时任务,注意业务是否在多进程有并发问题
$task->count = 1;
$task->onWorkerStart = function(Worker $task) use ($serverAddr, $nacosAddr)
{
$client = new Client([
// nacos地址
"base_uri" => $nacosAddr,
"timeout" => 5
]);
// 心跳检测每8秒执行一次
Timer::add(8, function() use ($client, $serverAddr)
{
list ($serverIP, $serverPort) = explode(':', $serverAddr);
$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
}'
],
]);
// echo "send heartbeat: " . $response->getBody()->getContents() . "\n";
// echo json_encode($_ENV, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
// echo "\n";
});
};
// 运行worker
Worker::runAll();