37.5. 端点选项
File 端点使用 URI 语法进行配置:
file:directoryName
使用以下路径和查询参数:
37.5.1. 路径参数(1 参数)
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
directoryName (common) | 必需 起始目录。 | File |
37.5.2. 查询参数(94 参数)
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
charset (common) | 此选项用于指定文件的编码。您可以在消费者上使用此选项,指定文件的编码,允许 Camel 了解在访问文件内容时应加载文件内容。在编写文件时,您可以使用此选项指定写入该文件的 charset。请记住,在编写文件 Camel 时,可能需要将消息内容读取到内存中,以便能将数据转换为配置的 charset,因此如果您有大型消息,请不要使用它。 | 字符串 | |
doneFileName (common) | 生产者:如果提供,则 Camel 将在写入原始文件时写入第 2 个 done 文件。完成的文件将为空。这个选项配置要使用的文件名。您可以指定一个固定名称。或者,您可以使用动态占位符。完成的文件始终将写入与原始文件相同的文件夹中。consumer:如果提供,Camel 仅在文件存在时使用文件。这个选项配置要使用的文件名。您可以指定一个固定名称。或者您可以使用动态占位符。已完成的文件始终预期位于与原始文件相同的文件夹中。仅支持 $\\{file.name} 和 $\\{file.name.next} 作为动态占位符。 | 字符串 | |
filename ( common) | 使用 File Language 等表达式来动态设置文件名。对于消费者,它将用作文件名过滤器。对于生成者,它用于评估要写入的文件名。如果设置了表达式,它将优先于 CamelFileName 标头。(注:标题本身也可以是表达式)。表达式选项支持 String 和 Expression 类型。如果表达式是 String 类型,则始终使用 File 语言来评估它。如果表达式是 Expression 类型,则使用指定的 Expression 类型 - 例如,允许您使用 OGNL 表达式。对于消费者,您可以使用它过滤文件名,因此,您可以使用 File Language 语法使用当前的文件:mydata-$\\{date:now:yyyyMMdd}.txt。生产者支持 CamelOverruleFileName 标头,它优先于任何现有的 CamelFileName 标头;CamelOverruleFileName 是一个只使用一次的标头,它可让您更轻松地临时存储 CamelFileName,且之后必须恢复它。 | 字符串 | |
bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
delete (consumer) | 如果为 true,则在成功处理后会删除该文件。 | false | 布尔值 |
moveFailed (consumer) | 根据简单语言设置移动失败表达式。例如,要将文件移到 .error 子目录中,请使用: .error。注意:将文件移到故障位置 Camel 时,将处理错误,并且不会再次获取该文件。 | 字符串 | |
noop (consumer) | 如果为 true,则文件不会以任何方式移动或删除。这个选项对只读数据或者 ETL 类型要求很好。如果 noop=true,Camel 也设置 idempotent=true,以避免再次消耗相同的文件。 | false | 布尔值 |
preMove (consumer) | 表达式(如文件语言)用于在处理之前动态设置文件名。例如,要将 in-progress 文件移到 order 目录中,将此值设置为 order。 | 字符串 | |
preSort (consumer) | 启用预先排序后,消费者将在轮询期间对文件和目录名称进行排序,该名称是从文件系统检索的。如果需要按排序顺序对文件进行操作,您可能需要执行此操作。指示器在消费者开始过滤前执行,并接受 Camel 处理的文件。这个选项是 default=false 表示禁用。 | false | 布尔值 |
递归 (consumer) | 如果某个目录,将查找所有子目录中的文件。 | false | 布尔值 |
sendEmptyMessageWhenIdle (consumer) | 如果轮询使用者没有轮询任何文件,您可以启用此选项来发送空消息(无正文)。 | false | 布尔值 |
directoryMustExist (consumer (advanced)) | 与 startDirectoryMustExist 选项类似,但这在轮询过程中应用(启动消费者)。 | false | 布尔值 |
exceptionHandler (consumer (advanced)) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer (advanced)) | 在消费者创建交换时设置交换模式。 Enum 值:
| ExchangePattern | |
extendedAttributes (consumer (advanced)) | 定义感兴趣的文件属性。与 posix:permissions,posix:owner,basic:lastAccessTime 类似,它支持基本通配符,如 posix:, basic:lastAccessTime。 | 字符串 | |
inProgressRepository (consumer (advanced)) | 可插拔式 in-progress 存储库 org.apache.camel.spi.IdempotentRepository。in-progress 存储库用于考虑被消耗的当前正在进行的文件。默认使用基于内存的存储库。 | IdempotentRepository | |
localWorkDirectory (consumer (advanced)) | 在消耗时,可以使用本地工作目录直接将远程文件内容存储在本地文件中,以避免将内容加载到内存中。这很有用,如果您使用非常大的远程文件,因此可以节省内存。 | 字符串 | |
onCompletionExceptionHandler (consumer (advanced)) | 要使用自定义 org.apache.camel.spi.ExceptionHandler 来处理在完成过程中发生的任何抛出异常,消费者在其中执行提交或回滚。默认实施会将任何异常记录在 WARN 级别并忽略。 | ExceptionHandler | |
pollStrategy (consumer (advanced)) | 可插拔 org.apache.camel.PollingConsumerPollingStrategy 允许您提供自定义实施来控制在轮询操作期间通常会发生错误处理,然后再创建交换并在 Camel 中路由。 | PollingConsumerPollStrategy | |
probeContentType (consumer (advanced)) | 是否启用内容类型探测。如果启用,则消费者使用 Files SerialprobeContentType (java.nio.file.Path)来决定文件的 content-type,并在 Message 上存储为带有密钥 ExchangeacFILE_CONTENT_TYPE 的标头。 | false | 布尔值 |
processStrategy (consumer (advanced)) | 可插拔 org.apache.camel.component.file.GenericFileProcessStrategy 允许您实施自己的 readLock 选项或类似选项。也可以在使用文件之前满足特殊条件时使用,如存在特殊的就绪文件。如果设置了这个选项,则不会应用 readLock 选项。 | GenericFileProcessStrategy | |
resumeStrategy (consumer (advanced)) | 为文件设置恢复策略。这样便可定义在停止应用程序前在最后一次点后恢复读取文件的策略。有关实现详情,请参阅 FileConsumerResumeStrategy。 | FileConsumerResumeStrategy | |
startingDirectoryMustExist (consumer (advanced)) | 起始目录是否必须存在。请注意,autoCreate 选项是默认启用的,这意味着如果起始目录不存在,则通常会自动创建该目录。您可以禁用 autoCreate 并启用它,以确保起始目录必须存在。如果目录 不存在,将抛出异常。 | false | 布尔值 |
startingDirectoryMustHaveAccess (consumer (advanced)) | 起始目录是否具有访问权限。请注意,startDirectoryMustExist 参数必须设置为 true 才能验证目录是否存在。如果目录没有读写权限,则会抛出异常。 | false | 布尔值 |
appendChars (producer) | 用于在写入文件后附加字符(文本)。例如,这可用于在编写和附加新文件或现有文件时添加新行或其他分隔符。要指定换行符(slash-n 或斜杠r)或标签页(slash-t)字符,然后使用额外的斜杠 eg slash-slash-n 转义。 | 字符串 | |
fileExist (producer) | 如果文件已存在具有相同名称的文件,该怎么办。override (这是默认设置)替换现有文件。- Append - 向现有文件中添加内容。- Fail - 会抛出 GenericFileOperationException,表示已存在文件。- Ignore - 静默忽略问题,且不会覆盖现有文件,但假设所有内容是 okay。- Move - 需要使用 moveExisting 选项配置。选项 eagerDeleteTargetFile 可用于控制在移动文件时执行什么操作,并且已存在文件,否则会导致移动操作失败。Move 选项将在编写目标文件之前移动任何现有文件。- 只有在使用 tempFileName 选项时,才会应用 TryRename。这允许尝试将文件从临时名称重命名为实际名称,而无需执行任何存在的检查。在某些文件系统(特别是 FTP 服务器中)中,这个检查可能会更快。 Enum 值:
| override | GenericFileExist |
flatten (producer) | flatten 用于扁平化任何前导路径的文件名路径,因此只用于文件名。这可让您以递归方式消耗到子目录中,但当您将文件写入另一个目录时,它们将写入单个目录。在生成者中将其设置为 true 强制执行 CamelFileName 标头中的任何文件名都会被剥离任何前导路径。 | false | 布尔值 |
jailStartingDirectory (producer) | 用于存放(限制)将文件写入起始目录(和子目录)。这默认是启用的,不允许 Camel 将文件写入外部目录(从而更加安全)。您可以关闭此项,以允许将文件写入起始目录之外的目录,如父目录或 root 文件夹。 | true | 布尔值 |
lazyStartProducer (producer) | 生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 CamelContext 和路由在生成者启动期间启动,并导致路由启动失败。通过懒惰启动,启动失败可以在路由信息时通过 Camel 的路由错误处理程序进行处理。请注意,在处理第一个消息时,创建并启动生成者可能需要稍等时间,并延长处理的总处理时间。 | false | 布尔值 |
moveExisting (producer) | 当配置了 fileExist=Move 时,用于计算文件名的表达式(如 File Language)。要将文件移动到备份子目录中,请输入 backup。这个选项只支持以下 File Language 令牌:file:name, file:name.ext, file:name.noext, file:onlyname, file:onlyname.noext, file:ext, 和 file:parent。请注意,FTP 组件不支持 file:parent,因为 FTP 组件只能将任何现有文件移到基于当前 dir 的相对目录中。 | 字符串 | |
tempFileName (producer) | 与 tempPrefix 选项相同,但对临时文件名的命名提供更精细的控制,因为它使用 File Language。tempFilename 的位置相对于选项 'fileName' 中的最终文件位置,而不是基本 uri 中的目标目录。例如,如果 option fileName 包含目录 prefix: dir/finalFilename,则 tempFileName 相对于那个子目录 dir。 | 字符串 | |
tempPrefix (producer) | 此选项用于使用临时名称写入文件,然后在写入完成后将其重命名为实际名称。可用于识别正在写入的文件,并避免消费者(不使用专用读取锁定)读取进度文件。上传大型文件时,FTP 通常使用。 | 字符串 | |
allowNullBody (producer (advanced)) | 用于指定在文件写入过程中是否允许 null 正文。如果设置为 true,则会创建一个空文件,当设为 false 时,并尝试向文件组件发送 null 正文,则 'Cannot null body to file.' 的 GenericFileWriteException 将会被抛出。如果将 fileExist 选项设置为 'Override',则文件将被截断,如果设置为附加文件,则文件将保持不变。 | false | 布尔值 |
chmod (producer (advanced)) | 指定生成者发送的文件权限,chmod 值必须在 000 和 777 之间;如果 0755 中有前导数字,我们将忽略它。 | 字符串 | |
chmodDirectory (producer (advanced)) | 指定制作者创建缺失目录时使用的目录权限,chmod 值必须在 000 和 777 之间;如果前一个数字,如 0755,我们将忽略它。 | 字符串 | |
eagerDeleteTargetFile (producer (advanced)) | 是否强制删除任何现有目标文件。这个选项只适用于使用 fileExists=Override 和 tempFileName 选项。您可以使用它来禁用(将其设置为 false)在写入临时文件前删除目标文件。例如,您可以写入大文件,并且希望写入 temp 文件期间存在目标文件。这样可确保目标文件仅在最后一次删除之前,直到 temp 文件被重命名为目标文件名之前。这个选项还用于控制在启用了 fileExist=Move 时是否删除任何现有文件,并且存在现有的文件。如果此选项 copyAndDeleteOnRenameFails false,则会在移动操作前现有文件存在时抛出异常。 | true | 布尔值 |
forceWrites (producer (advanced)) | 是否强制同步对文件系统写入。如果您不希望此级别的保证,例如写入日志/审计日志等,则可以关闭此项。 | true | 布尔值 |
keepLastModified (producer (advanced)) | 将保留源文件的最后修改的时间戳(若有)。将使用 Exchange.FILE_LAST_MODIFIED 标头来定位时间戳。此标头可以包含带有时间戳的 java.util.Date 或 long。如果存在时间戳,并且启用了 选项,它将在写入的文件上设置此时间戳。注:此选项仅适用于文件制作者。您不能将此选项与任何 ftp 生成者一起使用。 | false | 布尔值 |
moveExistingFileStrategy (producer (advanced)) | 策略(Custom Strategy)用于在配置 fileExist=Move 时使用,使用特殊命名令牌来移动文件。默认情况下,如果没有提供自定义策略,则使用实施。 | FileMoveExistingStrategy | |
auto create (advanced) | 在文件的路径名称中自动创建缺少的目录。对于文件消费者,这意味着创建起始目录。对于生成者文件,这意味着文件应当要写入的目录。 | true | 布尔值 |
bufferSize (advanced) | 用于写入文件的缓冲区大小(或者 FTP 用于下载和上传文件)。 | 131072 | int |
copyAndDeleteOnRenameFail (advanced) | whether to fallback 和 do a copy and delete 文件,如果无法直接重命名该文件。此选项不适用于 FTP 组件。 | true | 布尔值 |
renameUsingCopy (advanced) | 使用 copy 和 delete 策略执行重命名操作。这主要用于常规重命名操作不可靠(例如跨不同的文件系统或网络)。这个选项优先于 copyAndDeleteOnRenameFail 参数,该参数将自动回退到 copy 和 delete 策略,但仅在额外的延迟后自动回退到。 | false | 布尔值 |
同步 (高级) | 设置是否应严格使用同步处理。 | false | 布尔值 |
antExclude (filter) | Ant 风格过滤器排除。如果使用 antInclude 和 antExclude,则 antExclude 优先于 antInclude。可以使用逗号分隔的格式指定多个排除项。 | 字符串 | |
antFilterCaseSensitive (filter) | 在t 过滤器上设置 case sensitive 标志。 | true | 布尔值 |
antInclude (filter) | Ant 风格过滤器包括:可以使用逗号分隔的格式指定多个包含。 | 字符串 | |
eagerMaxMessagesPerPoll (filter) | 允许控制 maxMessagesPerPoll 的限制是 eager 还是 not。如果 eager,则限制是在扫描文件时。其中 false 会扫描所有文件,然后执行排序。将此选项设置为 false 可首先对所有文件进行排序,然后限制轮询。请注意,这需要更高的内存用量,因为所有文件详细信息都在内存中执行排序。 | true | 布尔值 |
exclude (filter) | 用于排除文件,如果文件名匹配 regex 模式(匹配不区分大小写)。请注意,如果您使用加号等符号,如果将其配置为端点 uri,则需要使用 RAW ()语法进行配置。有关配置端点 uris 时,请参阅更多详情。 | 字符串 | |
excludeExt (filter) | 用于排除与文件扩展名名称匹配的文件(不区分大小写)。例如,要排除 bak 文件,然后使用 excludeExt=bak。可以使用逗号分隔多个扩展,例如要排除 bak 和 dat 文件,使用 excludeExt=bak,dat。请注意,文件扩展名包含所有部分,例如,名为 mydata.tar.gz 的文件将扩展为 tar.gz。然后,使用 include/exclude 选项。 | 字符串 | |
Filter (filter) | 可插拔过滤器为 org.apache.camel.component.file.GenericFileFilter 类。如果过滤在 accept ()方法中返回 false,则会跳过文件。 | GenericFileFilter | |
filterDirectory (filter) | 根据简单语言过滤目录。例如,要过滤当前日期,您可以使用简单的日期模式,如 $\\{date:now:yyMMdd}。 | 字符串 | |
filterFile (filter) | 根据简单语言过滤文件。例如,要过滤文件大小,您可以使用 $\\{file:size} 5000。 | 字符串 | |
idempotent (filter) | 使用 Idempotent Consumer EIP 模式的选项,让 Camel 跳过已处理的文件。默认情况下,将使用基于内存的 LRUCache,其中包含 1000 个条目。如果 noop=true 然后会启用幂等,以避免再次消耗同样的文件。 | false | 布尔值 |
idempotentKey (filter) | 使用自定义幂等密钥。默认情况下使用文件的绝对路径。您可以使用 File Language,例如使用文件名和文件大小,您可以执行: idempotentKey=$\\{file:name}-$\\{file:size}。 | 字符串 | |
idempotentRepository (filter) | 一个可插拔存储库 org.apache.camel.spi.IdempotentRepository,如果没有指定,则默认使用 MemoryIdempotentRepository。 | IdempotentRepository | |
include (filter) | 用于包含文件,如果文件名匹配 regex 模式(匹配不区分大小写)。请注意,如果您使用加号等符号,如果将其配置为端点 uri,则需要使用 RAW ()语法进行配置。有关配置端点 uris 时,请参阅更多详情。 | 字符串 | |
includeExt (filter) | 用于包含与文件扩展名名称匹配的文件(不区分大小写)。例如,要包含 txt 文件,则使用 includeExt=txt。可以使用逗号分隔多个扩展,例如包括 txt 和 xml 文件,使用 includeExt=txt,xml。请注意,文件扩展名包含所有部分,例如,名为 mydata.tar.gz 的文件将扩展为 tar.gz。然后,使用 include/exclude 选项。 | 字符串 | |
maxDepth (filter) | 递归处理目录时要遍历的最大深度。 | 2147483647 | int |
maxMessagesPerPoll (filter) | 定义每个轮询要收集的最大消息。默认不设置最大值。可用于设置限制,例如 1000,以避免在启动有数千个文件的服务器时避免。设置一个 0 或 negative 值来禁用它。注意:如果使用这个选项,则 File 和 FTP 组件将在任何排序之前限制。例如,如果您有 100000 文件并使用 maxMessagesPerPoll=500,则只有第一个 500 文件会被获取,然后排序。您可以使用 eagerMaxMessagesPerPoll 选项,并将其设置为 false 以允许先扫描所有文件,然后随后排序。 | int | |
minDepth (filter) | 在递归处理目录时开始处理的最小深度。使用 minDepth=1 表示基础目录。使用 minDepth=2 表示第一个子目录。 | int | |
Move (filter) | 表达式(如简单语言)用于在处理后动态设置文件名。要将文件移动到 .done 子目录中,只需输入 .done。 | 字符串 | |
exclusiveReadLockStrategy (lock) | 可插拔 read-lock 作为 org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy 实施。 | GenericFileExclusiveReadLockStrategy | |
readLock (lock) | 供消费者使用,只有在文件上具有独占的 read-lock 时才轮询文件(例如,该文件没有正在进行中或被写入)。Camel 将等到授予文件锁定为止。这个选项提供了策略中的构建: - none - No read lock is use - markerFile - Camel 创建一个标记文件(fileName.camelLock),然后保存锁定。这个选项不适用于 FTP 组件 - 更改 - 使用文件长度/修改时间戳来检测当前是否复制了该文件。至少将使用 1 sec 确定此选项,因此此选项无法像其他进程一样快速使用文件,但可以更可靠,因为 JDK IO API 始终无法确定文件目前是否被其他进程使用。可以使用 readLockCheckInterval 选项来设置检查频率。- fileLock - 用于使用 java.nio.channels.FileLock。这个选项不适用于 Windows OS 和 FTP 组件。当通过 mount/share 访问远程文件系统时,应该避免使用这种方法,除非文件系统支持分布式文件锁定。- rename 是使用尝试重命名该文件的测试,如果我们可以获得专用只读锁定。- idempotent - (文件组件)幂等性是将 idempotentRepository 用作只读的lock。这允许使用支持集群读取锁定(如果幂等存储库实现支持集群)。- idempotent-changed - (仅适用于文件组件) idempotent-changed 使用 idempotentRepository,并随着组合的 read-lock 进行了更改。这允许在幂等存储库实施支持集群的情况下支持集群的读取锁。- idempotent-rename - (仅限文件组件) idempotent-rename 使用 idempotentRepository,并重命名作为组合的 read-lock。这允许使用支持集群读取锁定(如果幂等存储库实现支持)。Notice:各种读取锁定都不适用于集群模式下工作,其中不同节点上的并发用户在共享文件系统上竞争同一文件。markerFile 使用接近 atomic 操作来创建空的标记文件,但不保证在集群中工作。fileLock 可能会更好地工作,但文件系统需要支持分布式文件锁定,等等。如果幂等性存储库支持集群,如 Hazelcast 组件或 Infinispan,则使用幂等读取锁定支持集群。 Enum 值:
| none | 字符串 |
readLockCheckInterval (lock) | 读锁在 millis 中,如果读锁定支持,则间隔为 millis。这个间隔用于在尝试获取读锁定之间休眠。例如,在使用更改的读锁定时,您可以将更高的间隔周期设置为 cater 以慢速写入。如果生成者非常慢,则默认 1 sec. 可能太快。注意:对于 FTP,默认的 readLockCheckInterval 为 5000。readLockTimeout 值必须高于 readLockCheckInterval,但 thumb 规则是有一个超过 readLockCheckInterval 的 2 次或多次的超时。这是为了确保在达到超时前尝试获取锁进程允许随时读取的时间。 | 1000 | long |
readLockDeleteOrphanLockFiles (lock) | 如果 Camel 没有正确关闭(如 JVM 崩溃),则应在启动时读取带有标记文件的读取锁定文件(可能已留在文件系统上)读取锁定。如果将此选项设置为 false,则任何孤立锁定文件将导致 Camel 不尝试选择该文件,这可能是因为另一个节点同时从同一个共享目录读取文件。 | true | 布尔值 |
readLockIdempotentReleaseAsync (lock) | 延迟发布任务应该是同步还是异步的。请参阅 readLockIdempotentReleaseDelay 选项的详情。 | false | 布尔值 |
readLockIdempotentReleaseAsyncPoolSize (lock) | 使用异步发行任务时,调度线程池中的线程数量。在几乎所有用例中,使用默认值 1 个内核线程应足够足够,只有在更新幂等存储库缓慢或处理大量文件时才将其设置为更高的值。如果您使用共享线程池,通过配置 readLockIdempotentReleaseExecutorService 选项,这个选项不会被使用。请参阅 readLockIdempotentReleaseDelay 选项的详情。 | int | |
readLockIdempotentReleaseDelay (lock) | 是否将发行任务延迟为 millis。当文件被视为具有共享幂等存储库的主动/主动集群场景时,这可用于延迟发行任务扩展窗口,以确保其他节点因为竞争条件而可能扫描和获取同一文件。通过扩展发行任务的 time-window 有助于防止这些情况。只有在将 readLockRemoveOnCommit 配置为 true 时才需要注意延迟。 | int | |
readLockIdempotentReleaseExecutorService (lock) | 使用自定义和共享线程池进行异步发行任务。请参阅 readLockIdempotentReleaseDelay 选项的详情。 | ScheduledExecutorService | |
readLockLoggingLevel (lock) | 无法获取读取锁定时使用的日志记录级别。默认情况下,会记录 DEBUG。您可以更改此级别,例如将 OFF 更改为没有任何日志记录。这个选项只适用于 readLock 类型: changed, fileLock, idempotent, idempotent-changed, idempotent-rename, rename。 Enum 值:
| DEBUG | LoggingLevel |
readLockMarkerFile (lock) | 是否将标志文件与 changed、rename 或 exclusive read 锁定类型一起使用。默认情况下,还使用标记文件来保护获取相同文件的其他进程。通过将这个选项设置为 false 来关闭此行为。例如,如果您不希望将标记文件写入 Camel 应用程序的文件系统。 | true | 布尔值 |
readLockMinAge (lock) | 这个选项只适用于 readLock=changed。它可指定文件在尝试获取读取锁定前必须经过的最短期限。例如,使用 readLockMinAge=300s 来要求文件最新 5 分钟。这可加快更改的读锁定速度,因为它将只尝试获取至少给定年龄的文件。 | 0 | long |
readLockMinLength (lock) | 这个选项只适用于 readLock=changed。它允许您配置最小文件长度。默认情况下,Camel 预期文件包含数据,因此默认值为 1。您可以将这个选项设置为零,以允许消耗零长度文件。 | 1 | long |
readLockRemoveOnCommit (lock) | 这个选项只适用于 readLock=idempotent。它允许在处理文件成功并且执行提交时指定是否从幂等存储库中删除文件名条目。默认情况下,文件不会被删除,以确保不会发生任何竞争条件,因此另一个活动节点可能会尝试获取该文件。相反,幂等存储库可能支持驱除策略,在 X 分钟后用于驱除文件名条目 - 这样可保证竞争条件没有问题。请参阅 readLockIdempotentReleaseDelay 选项的详情。 | false | 布尔值 |
readLockRemoveOnRollback (lock) | 这个选项只适用于 readLock=idempotent。它允许在处理文件失败时指定是否从幂等存储库中删除文件名条目,并发生回滚。如果此选项为 false,则文件名称条目将被确认(就像文件确实是提交一样)。 | true | 布尔值 |
readLockTimeout (lock) | read-lock 的 millis 中可选超时(如果 read-lock 支持)。如果无法授予 read-lock,并且触发超时,则 Camel 将跳过该文件。在下一次轮询 Camel 时,将再次尝试文件,此时可能会授予 read-lock。使用 0 或较低值来指示永久。目前,fileLock,改变并重命名支持超时。注意:对于 FTP,默认的 readLockTimeout 值为 20000 而不是 10000。readLockTimeout 值必须高于 readLockCheckInterval,但 thumb 规则是有一个超过 readLockCheckInterval 的 2 次或多次的超时。这是为了确保在达到超时前尝试获取锁进程允许随时读取的时间。 | 10000 | long |
backoffErrorThreshold (scheduler) | 在 backoffMultipler 应该 kick-in 之前发生的后续错误轮询(因为某些错误)的数量。 | int | |
backoffIdleThreshold (scheduler) | 在 backoffMultipler 应该 kick-in 之前应该发生的后续空闲轮询数量。 | int | |
backoffMultiplier (scheduler) | 如果一行中有很多后续空闲/errors,则让调度的轮询消费者避退。然后,倍数是在下一次实际尝试再次发生前跳过的轮询数量。当使用这个选项时,还必须配置 backoffIdleThreshold 和/或 backoffErrorThreshold。 | int | |
delay (scheduler) | 下一次轮询前的时间(毫秒)。 | 500 | long |
greedy (scheduler) | 如果启用了 greedy,如果上一个运行轮询 1 或更多消息,则 ScheduledPollConsumer 将立即运行。 | false | 布尔值 |
initialDelay (scheduler) | 第一次轮询开始前的毫秒。 | 1000 | long |
repeatCount (scheduler) | 指定触发的最大数量。因此,如果您将其设置为 1,调度程序将只触发一次。如果您将其设置为 5,它将只触发五次。值为零或负数表示会永久触发。 | 0 | long |
runLoggingLevel (scheduler) | 消费者在轮询时记录 start/complete log 行。这个选项允许您为其配置日志级别。 Enum 值:
| TRACE | LoggingLevel |
scheduledExecutorService (scheduler) | 允许配置用于消费者的自定义/共享线程池。默认情况下,每个使用者都有自己的单线程线程池。 | ScheduledExecutorService | |
scheduler (scheduler) | 要使用 camel-spring 或 camel-quartz 组件的 cron 调度程序。使用值 spring 或 quartz 用于内置在调度程序中。 | none | 对象 |
schedulerProperties (scheduler) | 在使用自定义调度程序或任何基于 Spring 的调度程序时配置附加属性。 | Map | |
startScheduler (scheduler) | 调度程序是否应自动启动。 | true | 布尔值 |
timeUnit (scheduler) | initialDelay 和 delay 选项的时间单位。 Enum 值:
| MILLISECONDS | TimeUnit |
useFixedDelay (scheduler) | 控制是否使用固定延迟或固定率。详情请参阅 JDK 中的 ScheduledExecutorService。 | true | 布尔值 |
Shuff le (sort) | 影响文件列表(以随机顺序排序)。 | false | 布尔值 |
排序( 排序) | 使用文件语言进行内置排序.支持嵌套排序,以便按文件名排序,并根据修改的日期作为第二组排序。 | 字符串 | |
排序 (排序) | 可插拔排序器作为 java.util.Comparator 类。 | 比较器 |
文件生成者的默认行为
默认情况下,它会覆盖任何已存在的、带有相同名称的文件。