应用背景
服务A
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-file="http://www.springframework.org/schema/integration/file"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/file
http://www.springframework.org/schema/integration/file/spring-integration-file.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="classpath:application.properties"/>
<bean name="redisMetaDataStore" class="org.springframework.integration.redis.metadata.RedisMetadataStore">
<constructor-arg ref="redisConnectionFactory" />
</bean>
<bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="port" value="6379" />
</bean>
<int-file:inbound-channel-adapter id = "filesIn"
channel="fileChannel"
directory="file:${input.directory}"
filter="incomingCompositeFilter">
<int:poller id="fileInboudPoller" fixed-rate="${in.interval}" time-unit="SECONDS" />
</int-file:inbound-channel-adapter>
<bean id="incomingCompositeFilter" class="org.springframework.integration.file.filters.CompositeFileListFilter">
<constructor-arg>
<list>
<bean id="acceptOnceFilter" class="org.springframework.integration.file.filters.FileSystemPersistentAcceptOnceFileListFilter">
<constructor-arg ref="redisMetaDataStore"/>
<constructor-arg value="*"/>
</bean>
<bean id="notOlderThanDateFilter" class="com.fexco.bgeadmin.file.filter.NotOlderThanDateFilter">
<constructor-arg value="${file.lastModified.ignoreBeforeDate}"/>
</bean>
<bean id="documentConfigFilter" class="com.fexco.bgeadmin.file.filter.DocumentConfigFilter">
</bean>
</list>
</constructor-arg></bean>
<int:channel id="fileChannel"/>
<int-file:outbound-channel-adapter id="save-as-file"
auto-create-directory="true"
channel="fileChannel"
directory="file:${output.directory}"/>
</beans>
服务B
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-file="http://www.springframework.org/schema/integration/file"
xmlns:batch-int="http://www.springframework.org/schema/batch-integration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/file
http://www.springframework.org/schema/integration/file/spring-integration-file.xsd
http://www.springframework.org/schema/batch-integration
http://www.springframework.org/schema/batch-integration/spring-batch-integration.xsd">
<int:channel id="inboundFileChannel"/>
<int:channel id="outboundJobRequestChannel"/>
<int:channel id="jobLaunchReplyChannel"/>
<int-file:inbound-channel-adapter id="filePoller"
channel="inboundFileChannel"
directory="${app.file.source}"
auto-create-directory="true"
prevent-duplicates="true"
filter="incomingCompositeFilter">
<int:poller fixed-rate="5000"/>
</int-file:inbound-channel-adapter>
<bean id="incomingCompositeFilter" class="org.springframework.integration.file.filters.CompositeFileListFilter">
<constructor-arg>
<list>
<bean id="fileNameFilter" class="org.springframework.integration.file.filters.RegexPatternFileListFilter">
<constructor-arg value=".*\.(xls|xlsx|csv)$" />
</bean>
<bean id="ageFilter" class="com.fexco.bgeadmin.integration.filter.LastCreatedFileListFilter">
<property name="age" value="30"/>
</bean>
</list>
</constructor-arg></bean>
<int:transformer input-channel="inboundFileChannel"
output-channel="outboundJobRequestChannel" method="toRequest">
<bean class="com.fexco.bgeadmin.integration.FileMessageToJobRequest"/>
</int:transformer>
<batch-int:job-launching-gateway request-channel="outboundJobRequestChannel"
reply-channel="jobLaunchReplyChannel"/>
<int:logging-channel-adapter channel="jobLaunchReplyChannel"/>
</beans>
这类问题的最佳解决方案是#2--A不将文件“就地”写入B。使用上次修改的时间是不可靠的。
这是
的标准过程,它在下面使用FileWritingMessageHandler
。它有一个属性TemporaryFileSuffix
,默认为.writing
。文件在复制后被重命名。
似乎没有什么影响它的行为,它直接拿起它,抛出一个异常,因为一些检查,在处理文件,并将它移动到错误文件夹。 我知道有一个问题与FTP文件传输,我将不得不面对稍后,但我不能使它工作在本地文件系统。 任何帮助都将不胜感激! 我不得不稍微修改一下参数: 因为它抱怨readLockTimeout应该大于readLockCheckInterval+ReadLockMinage。
我有一个客户谁的FTP文件通过我们的服务器。我定义了一条路由,从这个目录中选择某些文件,并将它们移动到另一个要处理的目录中。问题是,它一看到它就拿它,而不是等到ftp完成。结果是to URI中描述的路径中的一个0字节文件。我尝试了每一个readLock选项(masterFile、rename、changed、fileLock),但都不起作用。我正在使用spring DSL定义我的骆驼路由。这里有一
我正在创建一个使用 RestAPI 获取数据的应用程序,对于该操作,我使用改造 2、okhttp3 和 Jackson 将 json 解析为对象,我的应用程序还使用 Firebase 云消息传递 当我编译我的代码时,它会给我以下错误 错误:任务执行失败:app:transformresourceswithmergejavarefordebug。 com . Android . build . AP
我想把文件从一个文件夹复制到子文件夹中,然后重命名文件名,我创建了子文件夹,然后重命名了文件名,这部分是: 但是我不能将这个重命名的文件复制到新的子文件夹中,它在父目录中重命名了它,而不是旧的文件名,我错在哪里了?
大家好,我有一个spring boot rest api,每个键和值都有重复的结果,如下代码所示 正如您所看到的,每一列都是重复的,一列首字母大写,另一列全是小写 这是我的课: 我使用我的数据库中的postgres,这是我的代码 如有任何帮助或指导将不胜感激
它显示无头服务是在豆荚顶部创建的。我没有办法强制连接到第一个吊舱或吊舱0或第二个吊舱,即吊舱1。