[ 
https://issues.apache.org/activemq/browse/CAMEL-250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aaron Crickenberger updated CAMEL-250:
--------------------------------------

    Attachment: camel-core.unchangedFileConsumer.patch

Re-attached patch w/ ASF license granted (it'd be nice if this was an option 
when creating a JIRA issue)

> Allow FileConsumer to check if a file is unchanged before processing it
> -----------------------------------------------------------------------
>
>                 Key: CAMEL-250
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-250
>             Project: Apache Camel
>          Issue Type: Improvement
>            Reporter: Aaron Crickenberger
>         Attachments: camel-core.unchangedFileConsumer.patch
>
>
> The use case is a FileConsumer polling a directory that's populated by an FTP 
> server.  Currently, the FileConsumer is almost guaranteed to grab files that 
> aren't complete.  Setting the consumer delay to something large just reduces 
> the likelihood, and requiring external lock files or renaming (though 
> potentially more atomic) seems like too many moving parts.
> In an attempt to combat this, I added an isUnchanged() method to FileConsumer 
> that is used similar to isMatched(), along with two properties, 
> unchangedDelay and unchangedSize.  Setting unchangedDelay to eg: 5000 will 
> cause FileConsumer to avoid processing a file until its last modified time is 
> at least 5 seconds in the past.  For large files being copied across a local 
> filesystem, this doesn't always work, because the modified date may be 
> preserved even though the file's not done copying.  Thus, setting 
> unchangedSize to true will cause FileConsumer to avoid processing a file 
> until its filesize remains unchanged across two successive polls.
> There's probably a more camel-like way to do this, maybe involving a polling 
> strategy, so that the technique could shared with RemoteFileConsumers, but 
> that made my brain hurt.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to