我们的应用程序使用一个Spring Integration文件:inbound-channel-adapter
轮询一个目录,以便在将文件丢弃到该目录时侦听该目录。然后,Spring Integration启动一个Spring批处理作业,将要处理的文件的路径和名称交给该作业。
显然,即使在Spring批处理作业处理了一个文件之后,文件轮询器仍在继续运行。因此,Spring上下文保持打开,应用程序不会终止。是否有一种方法,通过编程或配置(更好),在一个文件被读取后停止轮询器?
谢谢
您可以在poller上使用Fireoncetrigger
,或者在此答案中另外介绍的技术之一。
要以编程方式停止适配器,关闭()
上下文,或调用adapter.stop()
(@autowire
适配器为sourcePollingChannelAdapter
。或使用
并发送带有有效负载的消息“adapterid.stop()”
。
问题内容: 有关此目标背后的动机(以及我为实现该目标所做的努力)的更多详细信息,请查看我的上一个问题。我决定完全以一个新问题提出这个问题,因为我认为它已经发展到足以值得这样做了。作为总结,我打算将JDOM与NIO结合使用,以便: 在xml文件上获得排他文件锁定。 将文件读入对象。 进行任意更改(锁定仍处于活动状态!)。 将更改写回到xml文件。 释放文件锁。 但是,我遇到的问题是,将xml文件读入
我也有弹出绑定网关适配器,但它也是一样的。我会非常感谢您的帮助。非常感谢
当入站通道适配器从输入目录读取第二个文件时,我遇到了一个问题。适配器启动如下流:适配器->通道->拆分器->通道...->数据库。 拆分器读取文件,处理每一行,然后将文件复制到另一个目录,并删除原始文件。 问题是,适配器可以像预期的那样处理第一个文件,但当它读取第二个文件时,它会再次从第一个文件发送消息(第一个文件不再在输入目录中)。 注意:第一个通道具有ActiveMQ队列。Ack本地。 配置:
我正在使用spring integration sftp入站流通道适配器,它每隔几秒钟就轮询一次。入站适配器正在多次挑选相同的文件进行处理。下面是配置。 上面代码中的sample.customFilter是SftpRegexPatternFileListFilter的一个子类,其中我将accept方法修改如下,以便根据Spring SFTP vanging filename-regex中提供的解决
我们正在使用spring integration sftp入站通道适配器,它每隔几秒钟轮询一次,并将zip文件下载到本地目录进行进一步处理。当有一个大文件,客户端仍在上载该文件,而这个入站适配器拾取了那个不完整的文件时,问题就开始了。我们使用AcceptAllFileFilter进行远程筛选,对于本地筛选,我们有自定义筛选。 有没有更好的方法来忽略或检查文件是否完全上传,然后拿起进行处理?
问题内容: 我目前正在阅读“用困难的方式学习Python”,已经读到了第16章。 写入文件后,似乎无法打印文件的内容。它只是不打印任何内容。 问题答案: 你不调用函数和,而不是你只是得到他们的 指点 。由于它们是函数(或更准确地说,是方法),因此您需要在函数名称后调用它:。 那就是问题所在; 您以写入模式打开文件,该模式将删除文件的所有内容。您写入了文件,但从未关闭它,因此更改从未提交,文件保持为