如何创建一个应用程序来轮询 50 个 JMX URI 并将 mbeans 存储在 DB 中。我创建了一个类,它将连接到 jmx 服务器并获取 mbeans 值。我的问题是如何触发我创建的类和方法继续轮询。此外,我需要两个函数来随时启动和停止此轮询。
我可以使用什么 - Spring Scheduler、Spring Integration 以及如何或应该创建具有线程和无限循环的不同类。
如何创建一个应用程序来轮询 50 个 JMX URI 并将 mbeans 存储在 DB 中。我创建了一个类,它将连接到 jmx 服务器并获取 mbeans 值。我的问题是如何触发我创建的类和方法继续轮询。此外,我需要两个函数来随时启动和停止此轮询。
我可以使用什么 - Spring Scheduler、Spring Integration 以及如何或应该创建具有线程和无限循环的不同类。
看看 Spring Integration 及其 JMX Tree Polling Channel Adapter。
使用 Spring Scheduler(@Schedule
注解)很容易拥有一个(例如)每分钟调用一次的方法。但是不可能*更改(禁用)该调度。
无论如何,您可以:
让调度程序运行,但禁用真正轮询方法的调用:
private volantile boolean pollingEnabled;
@Schedule(fixedRate=1000)
public void pollTrigger() {
if (pollingEnabled) {
doPolling();
}
}
*更准确:据我所知,没有简单的方法