使用 soa ftp 适配器基于序列/名称进行文件排序

Posted

技术标签:

【中文标题】使用 soa ftp 适配器基于序列/名称进行文件排序【英文标题】:File sorting based on sequence/name using soa ftp adapter 【发布时间】:2017-12-21 11:06:46 【问题描述】:

目前,ftp 正在使用属性根据时间戳从其他服务器轮询文件:

新要求规定根据文件的名称或顺序轮询文件,这与使用时间戳不同。

目前,soa 中的 ftp 适配器提供两个属性

列表项

oracle.tip.adapter.file.inbound.listing.TimestampSorterAscending 以升序方式按修改后的时间戳对文件名进行排序;

oracle.tip.adapter.file.inbound.listing.TimestampSorterDescending 以降序方式按修改后的时间戳对文件名进行排序

适配器配置如下:

<adapter-config name="##" adapter="FTP Adapter" wsdlLocation="##.wsdl" xmlns="http://platform.###">

  <connection-factory location="###" UIincludeWildcard=""/>
  <endpoint-activation portType="Get_ptt" operation="Get">
    <activation-spec className="###">
      <property name="DeleteFile" value="true"/>
      <property name="MinimumAge" value="0"/>
      <property name="PhysicalDirectory" value="##"/>
      <property name="Recursive" value="false"/>
      <property name="PollingFrequency" value="5"/>
      <property name="FileType" value="ascii"/>
      <property name="PhysicalArchiveDirectory" value=##"/>
      <property name="IncludeFiles" value=""/>
      <property name="UseHeaders" value="false"/>
      <property name="SingleThreadModel" value="true"/>
      <property name="MaxRaiseSize" value="50"/>
      <property name="ListSorter" value="oracle.tip.adapter.file.inbound.listing.TimestampSorterAscending"/>

    </activation-spec>
  </endpoint-activation>

</adapter-config>

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我认为处理文件的顺序很重要。如果是这样,我不会将确保顺序的工作委托给文件适配器。我宁愿在后端处理这个。如果您不希望或可以这样做:FTP 适配器始终按字母升序获取文件。

【讨论】:

【参考方案2】:

ftp 目前允许以下两种轮询策略选项:

--property name="ListSorter" value="oracle.tip.adapter.file.inbound.listing.TimestampSorterAscending"--

--property name="ListSorter" value="oracle.tip.adapter.file.inbound.listing.TimestampSorterDescending"--

ftp 适配器(.JCA 文件)中的这些属性允许 ftp 入站轮询策略基于时间戳,禁用此属性或从 .jca 文件或控制台中删除此属性启用默认轮询策略,即轮询基于顺序。

谢谢。

【讨论】:

以上是关于使用 soa ftp 适配器基于序列/名称进行文件排序的主要内容,如果未能解决你的问题,请参考以下文章

FTP服务

使用Java,Spring进行基于配置文件,可切换的JSON缩小

SOA架构,dubbo,Zookeeper

SOA 组合未从 JMS 队列中读取

使用FileZilla删除乱码名称文件

PHP mkdir不使用具有“系统操作”或“设备”引用名称的文件夹