I'm rather new to Camel, I'm assuming that if the SFTP source gets 900
files then the configured
GenericFileExclusiveReadLockStrategy#acquireExclusiveReadLock will get
called 900 times (once per file) every polling cycle.

We too have a custom GenericFileExclusiveReadLockStrategy class that does
not block.  What ours does is maintain a map/cache of of the
lastModifiedTime and fileSize for each of the 900 files.  The call to
acquireExclusiveReadLock() will return true as soon as neither of those
values changed since the last poll cycle.

We have our delay/poll cycle set to 60 seconds.  I'm not sure why such a
large value but we are fine waiting 2 minutes to get each of the 900
files...and by the time 2 minutes go by we will likely have more files in
the SFTP source.  E.g. if we have a constant delay in receiving each file
of 2-3 minutes that is more than fine.  The problem is that on each cycle
it only processes 3-5 files instead of the 900 that should have returned
true from acquireExclusiveReadLock()

What seems to be happening is that Camel is not calling the
acquireExclusiveReadLock() method for each of the 900 files every 60
seconds, rather it slows down and either calls just a few of those 900
files or none.

Any ideas?

-Dave

Btw, I'm  using Camel 2.8.2



On Thu, Nov 12, 2015 at 12:43 PM, pmmerritt <pmmerr...@gmail.com> wrote:

> We had a similar issue and traced it down to our usage of
> SftpChangedExclusiveReadLockStrategy which has a default check interval of
> 5
> seconds which causes the polling to slow down waiting on files to finish
> being written, so max you can do is about 1 per 5 seconds. You can change
> the checkInterval so that it is faster, or we ended up writing our own read
> lock strategy that did not block the polling thread
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/sftp-endpoint-is-not-as-performant-as-expected-tp5773654p5773780.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Reply via email to