php-micro-file-server/start.php

65 lines
2.1 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();
// nacos的注册地址
$nacosAddr = $env->get('NACOS_ADDR', '192.168.1.105:8848');
// 服务可以访问到的IP
$serviceAddr = $env->get('SERVER_ADDR');
// 服务暴露的端口
$servicePort = $env->get('SERVICE_PORT', 8000);
// 命名空间变量
$namespaceId = $env->get('NAMESPACE_ID', '0a1c32f2-dea1-4ec1-b546-cb4635cd7db2');
// 服务名称
$serviceName = $env->get('SERVICE_NAME', 'zeroerroa-file');
$task = new Worker();
// 定时触发邮件发送任务
// 开启多少个进程运行定时任务,注意业务是否在多进程有并发问题
$task->count = 1;
$task->onWorkerStart = function(Worker $task) use ($serviceAddr, $servicePort, $nacosAddr, $namespaceId, $serviceName)
{
$client = new Client([
// nacos地址
"base_uri" => $nacosAddr,
"timeout" => 5
]);
var_dump($serviceAddr, $servicePort, $nacosAddr, $namespaceId, $serviceName);
// 心跳检测每8秒执行一次
Timer::add(8, function() use ($client, $serviceAddr, $servicePort, $namespaceId, $serviceName)
{
$client->request("put", "/nacos/v1/ns/instance/beat", [
"form_params" => [
"serviceName" => $serviceName,
"ip" => $serviceAddr,
"port" => $servicePort,
"namespaceId" => $namespaceId,
"groupName" => "DEFAULT_GROUP",
"beat" => '{
"cluster": "DEFAULT",
"ip": "' . $serviceAddr . '",
"metadata": {},
"port": ' . $servicePort . ',
"scheduled": true,
"serviceName": "' . $serviceName . '",
"weight": 1
}'
],
]);
// echo "send heartbeat: " . $response->getBody()->getContents() . "\n";
// echo json_encode($_ENV, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE);
// echo "\n";
});
};
// 运行worker
Worker::runAll();