我写了一个更简单的演示,与此非常相似
https://github.com/andreiz/php-zookeeper/wiki
,观察者在这个演示中运行良好。
最显着的区别是
while( true ) {
echo ‘.’;
sleep(2);
}
</code>
虽然java有一个jvm容器托管观察者,php没有容器来做它,所以我们必须使用
while(true)
让观察者活着。
所以我添加一个
while(true)
在我的代码中,现在观察者工作正常。
但我不想添加一个可怕的
while(true)
在一个Web应用程序中,所以最终的解决方案是添加一个Java应用程序与zookeeper通信并将结果保存在redis中,而php app只是从redis中读取信息。