我想要销毁掉能否有办法再启用?
或者说暂时停掉,需要的时候在启用。求大侠们帮帮忙
- Java code
Timer timer = new Timer("Timer-reconnect provider Timer"); TimerTask task = new TimerTask() { @Override public void run() { log.info("it is time to check jtapi Provider."); try { checkProvider(); } catch (Exception e) { log.info("the Network may be disconnected,please check!"); e.printStackTrace(); } }}
在provider INSERVICE的時候关了
在provider OUTOFSERVICE的時候开启
在provider SHUTDOWN的時候关开启
我下面这样写就不行
- Java code
@Override public void providerInService(ProviderEvent event) { log.info("provider is InService."); timer.cancel(); } @Override public void providerOutOfService(ProviderEvent event) { log.info("provider is OutOfService,please wait for InService."); timer.schedule(task, 3000, 10000); } @Override public void providerShutdown(ProviderEvent event) { log.info("provider is Shutdown,please wait for restart."); timer.schedule(task, 3000, 10000); }
------解决方案--------------------
每次cancel task,然后重新启动的时候,重新new一个task加入schedule