Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring integration 有没有办法手动启动入站通道适配器?[春季整合]_Spring Integration - Fatal编程技术网

Spring integration 有没有办法手动启动入站通道适配器?[春季整合]

Spring integration 有没有办法手动启动入站通道适配器?[春季整合],spring-integration,Spring Integration,有没有办法在轮询器触发之前启动上述入站通道适配器? 通常轮询器一天大约触发一次,但有时我需要根据用户的交互情况立即进行操作(当用户单击“开始”按钮时) 谢谢 ference为您提供信息:任何入站通道适配器都可以手动启动/停止(您应该为该组件提供id)。但我们应该明白,这对我们没有帮助。因为任何活动都基于触发器 正如我看到的那样,您需要通过用户事件立即开始轮询,因此您应该提供一些适当的触发器实现。例如 我建议再添加一个具有相同选项和相同频道的,但使用该自定义触发器不会破坏cron逻辑。 新的应标记

有没有办法在轮询器触发之前启动上述入站通道适配器? 通常轮询器一天大约触发一次,但有时我需要根据用户的交互情况立即进行操作(当用户单击“开始”按钮时)

谢谢


ference

为您提供信息:任何
入站通道适配器
都可以手动
启动/停止
(您应该为该组件提供
id
)。但我们应该明白,这对我们没有帮助。因为任何活动都基于
触发器

正如我看到的那样,您需要通过用户事件立即开始轮询,因此您应该提供一些适当的
触发器
实现。例如

我建议再添加一个具有相同选项和相同频道的
,但使用该自定义触发器不会破坏
cron
逻辑。 新的
应标记为
自动启动=“false”
。用户
start
按钮只需
start()
该组件,是的,
立即停止。将启动单个轮询任务

在这里,您应该考虑一些仅在触发器上执行的
重置()
,以允许它在单击下一个按钮时启动新的轮询任务


是的,您甚至可以实现一些复杂的
触发器
,包括
cron
两种
触发操作,以避免再次执行一次
,但这已经取决于您了。

此nextExecutionTime()方法调用的频率如何?如果我的民意调查员每天只开一次火,情况会怎样?想象以下时间线:10:10-轮询器触发10:20-用户单击开始按钮我们是否必须等到第二天10:10系统调用nextExecutionTime()来确定下一次运行的日期?不幸的是,
触发器本身没有任何作用。所有的艰苦工作都是在
TaskScheduler#计划(可运行任务、触发器)
实现中完成的。
TaskScheduler
计算下一个启动日期,并将任务填充到内部
执行器
。该任务完成后,将启动下一个计划的计算。因此,任何自定义火灾都不会影响已计划的任务。这就是为什么我认为您无法在单个触发器中实现所有功能,因此无法在单个
入站通道适配器中实现所有功能
 <int-file:inbound-channel-adapter 
    directory="#{dir}"
    channel="inp" filename-regex="^.*\.(xml|lst)$"  prevent-duplicates="false">
  <int:poller max-messages-per-poll="1" cron ="#{timer}"/>
</int-file:inbound-channel-adapter>