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