改进 节点注册和更新
This commit is contained in:
parent
118e5e0550
commit
f852717191
@ -42,23 +42,39 @@ public static function publish($event, $data = [], $register = false): void
|
||||
}
|
||||
}
|
||||
|
||||
public static function registerThisNode($report = true): void
|
||||
public static function registerThisNode($report = true, $data = []): void
|
||||
{
|
||||
$node_id = config('settings.node.id');
|
||||
|
||||
ClusterSupport::hset('nodes', $node_id, [
|
||||
$node = [
|
||||
'type' => config('settings.node.type'),
|
||||
'id' => $node_id,
|
||||
'ip' => config('settings.node.ip'),
|
||||
// utc +8 timestamp
|
||||
'last_heartbeat' => time(),
|
||||
]);
|
||||
];
|
||||
|
||||
$node = array_merge($node, $data);
|
||||
|
||||
self::updateThisNode($node);
|
||||
|
||||
if ($report) {
|
||||
ClusterSupport::publish('node.ok');
|
||||
}
|
||||
}
|
||||
|
||||
public static function updateThisNode($data = []): void
|
||||
{
|
||||
$node_id = config('settings.node.id');
|
||||
|
||||
$node = self::hget('nodes', $node_id, "[]");
|
||||
$node = json_decode($node, true);
|
||||
|
||||
$node = array_merge($node, $data);
|
||||
|
||||
ClusterSupport::hset('nodes', $node_id, $node);
|
||||
}
|
||||
|
||||
|
||||
public static function hset($key, $value, $data = []): void
|
||||
{
|
||||
/** @noinspection PhpUndefinedMethodInspection */
|
||||
@ -69,6 +85,7 @@ public static function hset($key, $value, $data = []): void
|
||||
* @param string|array $events 事件名称
|
||||
* @param $callback callable 回调函数,接收一个参数,为事件数据。
|
||||
* @param $ignore_self bool 是否忽略此节点的消息。
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function listen(string|array $events, callable $callback, bool $ignore_self = true): void
|
||||
|
Loading…
Reference in New Issue
Block a user