我正在尝试为下面描述的流创建动态ftp入站适配器
<int-ftp:inbound-channel-adapter id="ftpInbound"
channel="ftpChannel" session-factory="ftpClientFactory"
filename-pattern="*.txt" auto-create-local-directory="true"
delete-remote-files="false" remote-directory="${remotedir}"
local-directory="/mock/test" auto-startup="true">
<int:poller fixed-rate="1000">
<int:transactional synchronization-factory="syncFactory" />
</int:poller>
</int-ftp:inbound-channel-adapter>
为此,我使用SI java dsl创建了以下流,我使用SI dynamic registration注册这些流,如下所示
public void createSubFlows(FtpConfig config) {
DefaultFtpSessionFactory sf = new DefaultFtpSessionFactory();
Connection connection = config.getConnection();
Feed feed = config.getFeed();
sf.setHost(connection.getHost());
sf.setPort(connection.getPort());
sf.setUsername(connection.getUsername());
sf.setPassword(connection.getPassword());
IntegrationFlow flow = IntegrationFlows
.from(Ftp.inboundAdapter(csf).preserveTimestamp(true)
.remoteDirectory(feed.getRemoteDirectory())
.regexFilter(".*\\.txt$")
.localDirectory(new File(feed.getLocalDirectory())),
e -> e.id("ftpInboundAdapter" + connection.getId()
+ feed.getId())//
).handle(m -> System.out.println(m.getPayload())).get();
this.flowContext.registration(flow)
.id("ftp.flow" + connection.getId() + feed.getId()).autoStartup(true)
.register();
}
同样的方法也很有效,但我还想配置一个类似于上面xml中的动态轮询器。SI Java DSL也可以这样做吗
更新
看起来它的工作,虽然不确定为什么它不来在内容协助
e -> e.poller(Pollers.fixedRate(100).maxMessagesPerPoll(1))
您确定. from()
中的e
没有. poller()':
from(Ftp.inboundAdapter(csf)
.preserveTimestamp(true)
.remoteDirectory(feed.getRemoteDirectory())
.regexFilter(".*\\.txt$")
.localDirectory(new File(feed.getLocalDirectory())),
e -> e.id("ftpInboundAdapter" + connection.getId()
+ feed.getId()
.poller())
?
在一个普通的freestyle项目中,我配置了SCM插件来指向我想要发布的Git repo,并且我启用了“Poll SCM”选项,这允许我配置一个Stash webhook来告诉Jenkins何时该repo发生了变化。这样,每当将更改推送到repo时,就可以触发作业。 但是当我使用工作流而不是自由式项目时,我需要构建的代码的SCM是在groovy工作流脚本中以编程方式指定的,这意味着它没有侦听St
问题内容: 对于需要快速刷新数据的应用程序,使用JavaScript轮询服务器的最佳实践是什么?我将jQuery用于前端,将Java Spring Framework用于后端。 刷新数据的示例可以是很快(每1秒)更新一次的项目列表。 问题答案: 您可能想使用jQuery的Ajax函数每秒钟左右轮询一次服务器。然后,服务器可以近乎实时地向浏览器发出指令响应。 您也可以考虑使用长轮询而不是上面的方法,
问题内容: 我正在尝试学习AngularJS。我第一次尝试每秒钟获取新数据的工作: 当我通过使线程休眠5秒钟来模拟慢速服务器时,它将等待响应,然后再更新UI和设置另一个超时。问题是当我重写以上内容以使用Angular模块和DI进行模块创建时: 这仅在服务器响应速度很快时才有效。如果有任何延迟,它会在不等待响应的情况下每秒发出1个请求,并且似乎清除了UI。我想我需要使用回调函数。我试过了: 但是出现
问题内容: 我正在尝试在Flask框架下使用JQuery和Python进行长时间轮询。 在PHP中进行了长时间的轮询之后,我尝试以相同的方式进行处理: 具有while(true)循环的脚本/函数,定期检查更改,例如,数据库中每0.5秒更改一次,并在发生更改时返回一些数据。 因此,在我的ini .py文件中,我创建了一个到/ poll的app.route,以供JQuery调用。jQuery向其提供有
如何使用Spring集成Api轮询特定文件目录中的多个文件,而无需xml配置,最好使用基于Java注释的方法?我想获得轮询文件列表,并对其进行迭代并进一步处理。这是要求。可用于满足此要求的任何示例代码。提前谢谢。下面是我使用的代码片段。 但是不管输入目录中没有文件,消息源实例总是只获取一个文件。不确定如何使其适用于要获取的多个文件。
问题内容: 对于需要刷新以设置的时间间隔呈现给用户的部分数据的简单Web应用程序,仅使用setInterval()从端点获取JSON而不使用适当的轮询框架是否有任何弊端? 出于示例的原因,可以说我每5秒刷新一次处理作业的状态。 问题答案: 根据我的评论: 我将使用 [docs] 并始终在收到上一个响应时调用它。这样,在请求/响应花费的时间超过间隔时间的情况下,可以避免可能的拥塞或函数堆栈或任何您想