函数名称:Zookeeper::setWatcher()
适用版本:PHP 5 >= 5.3.0, PHP 7
函数说明:Zookeeper::setWatcher() 方法用于设置一个回调函数,当指定的节点发生变化时会触发该回调函数。
用法:
bool Zookeeper::setWatcher(string $path, callable $watcher_cb): bool
参数:
$path:需要监视的节点的路径。$watcher_cb:一个回调函数,当指定节点发生变化时会被调用。该回调函数有三个参数:$event_type表示事件类型,$stat表示节点的状态信息,$path表示发生变化的节点路径。返回值:
示例:
$zookeeper = new Zookeeper('localhost:2181');
$path = '/my_node';
// 创建一个回调函数
function watcherCallback($event_type, $stat, $path) {
echo "Node $path has changed!";
echo "Event type: $event_type";
echo "Node stat: " . var_export($stat, true);
}
// 设置监视器
$zookeeper->setWatcher($path, 'watcherCallback');
// 模拟节点变化
$zookeeper->set($path, 'new_data');
// 在此处等待一段时间,以便触发回调函数
// 输出:
// Node /my_node has changed!
// Event type: 3
// Node stat: array (
// 'ctime' => 1632362115,
// 'mtime' => 1632362120,
// 'version' => 1,
// 'cversion' => 0,
// 'aversion' => 0,
// 'ephemeralOwner' => 0,
// 'dataLength' => 8,
// 'numChildren' => 0,
// 'pzxid' => 3,
// )
注意事项:
$event_type、$stat、$path。