如何在入站通道适配器中创建自定义轮询器?

时间:2018-10-30 09:37:12

标签: java spring spring-integration

我想创建一个自定义轮询器,该轮询器只轮询一次数据,然后停止主线程。或者如何在一次轮询后停止轮询器并退出应用程序?

1 个答案:

答案 0 :(得分:0)

为此,您需要实现自定义Trigger才能插入提到的轮询器。

类似这样的东西:

public class OnlyOnceTrigger implements Trigger {

    private final AtomicBoolean hasRun = new AtomicBoolean();

    @Override
    public Date nextExecutionTime(TriggerContext triggerContext) {
        if (this.hasRun.getAndSet(true)) {
            return null;
        }

        return new Date();
    }

}

nextExecutionTime()返回null时,调度程序停止运行任务,因此仅运行一次便不再轮询。