php-micro-file-server/config/worker.php

78 lines
3.4 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
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// +----------------------------------------------------------------------
// | Workerman设置 仅对 php think worker 指令有效
// +----------------------------------------------------------------------
use GuzzleHttp\Client;
use think\facade\Log;
use Workerman\Worker;
use Workerman\Lib\Timer;
return [
// 扩展自身需要的配置
'host' => '0.0.0.0', // 监听地址
'port' => 2346, // 监听端口
'root' => '', // WEB 根目录 默认会定位public目录
'app_path' => '', // 应用目录 守护进程模式必须设置(绝对路径)
'file_monitor' => false, // 是否开启PHP文件更改监控调试模式下自动开启
'file_monitor_interval' => 2, // 文件监控检测时间间隔(秒)
'file_monitor_path' => [], // 文件监控目录 默认监控application和config目录
// 支持workerman的所有配置参数
'name' => 'thinkphp',
'count' => 1,
'daemonize' => false,
'pidFile' => '',
'onWorkerStart' => function($worker) {
$task = new Worker();
$task->count = 1;
$task->onWorkerStart = function(Worker $task) {
// 获取本地IP
$serverIP = env('SERVER_ADDR', '192.168.1.161');
$serverPort = env('SERVER_PORT', 2346);
// 控制台输出
Log::record('workerman start');
Log::record('Workerman config:' . $serverIP . ':' . $serverPort, 'info');
$client = new Client([
// nacos地址
"base_uri" => "http://192.168.1.105:8848",
"timeout" => 5
]);
// 每2.5秒执行一次
Timer::add(5, function() use ($client, $serverIP, $serverPort)
{
$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();
echo "\n";
});
};
}
];