我目前正在制作一个看门狗来检查管道中的所有捆绑包是否仍然正常运行。(这将在分布式环境中,因此故障可能是网络故障、软件故障、其中一台服务器故障……)
因为一个bundle可以绑定到N个服务,N个任意的,检查应该使用以下方法递归地进行:
START at the first step in the pipeline
Use getServicesInUse to get the services references of the next step
use getBundle() on the gathered ServiceRerefence objects
REPEAT until we arrive at the bundle we want to stop at
因此,我现在可以获取管道的所有捆绑对象(我假设)以检查它们是否正常运行(或者它们是否仍然可以访问)我想知道是否
Bundle b = ...
if(b.getState() == Bundle.ACTIVE) ...;
会成功吗?当然,也可以使用必要的 try catch 子句来检测硬件/网络故障。