1

ディレクトリからファイルを読み取ろうとしています。ファイルを処理できない場合は、後で試行するためにそこにとどまります。

<file:inbound-channel-adapter prevent-duplicates="false" id="fileInput" directory="file:${java.io.dir}/input-data" auto-create-directory="true" filter="compositeFileFilterBean"/>

    <integration:poller id="poller" max-messages-per-poll="10" default="true" >
        <integration:interval-trigger interval="60" time-unit="SECONDS" />
    </integration:poller>

問題は、max-messages-per-poll がたとえば 10 に設定されている場合、ファイルが 1 つしかない場合でも、各ポーリングが正確に 10 個のメッセージを返すことです (つまり、10 個のメッセージはすべて同じになります)。

4

2 に答える 2

3

はい、それはこれらの設定で期待される動作です。

それが間違っていると思う理由がわかりません。

フィルター (重複を防止するファイルなど) によってフィルター処理されていないファイルがディレクトリにある場合、現在のポーリング内のいずれかで、ポーラーによって検出されます (max-messages-per-poll が > 1 の場合)。 ) または次のポーリングで。

必要なことを行うには、60 秒のポーリング間隔内で以前に見つかったファイルをフィルター処理するカスタム フィルターが必要です。

于 2012-10-23T20:08:29.723 に答える