23.4. 端点选项
File 端点使用 URI 语法进行配置:
file:directoryName
file:directoryName
使用以下路径和查询参数:
23.4.1. 路径参数(1 参数) 复制链接链接已复制到粘贴板!
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
directoryName (common) | 所需的 起始目录。 | File |
23.4.2. 查询参数(94 参数) 复制链接链接已复制到粘贴板!
名称 | 描述 | 默认 | 类型 |
---|---|---|---|
charset (common) | 此选项用于指定文件的编码。您可以在消费者上使用此功能,以指定文件的编码,允许 Camel 知道计费集应在访问文件内容时加载文件内容。类似地,在编写文件时,您可以使用此选项来也指定写入该文件的 charset。请记住,在编写文件 Camel 时,必须将消息内容读取在内存中才能将数据转换为配置的字符集,因此如果您有大消息,请不要使用它。 | 字符串 | |
doneFileName (common) | 制作者:如果提供,则 Camel 将在写入原始文件时写入第二文件。完成的文件将为空。此选项配置要使用的文件名。您可以指定一个固定名称。或者,您可以使用动态占位符。完成的 文件始终写入到与原始文件相同的文件夹中。消费者:如果提供,Camel 仅在文件存在时使用文件。此选项配置要使用的文件名。您可以指定一个固定名称。或者您可以使用动态占位符。执行的文件始终位于与原始文件相同的文件夹中。仅支持 $\\{file.name} 和 $\\{file.name.next} 作为动态占位符。 | 字符串 | |
文件名( common) | 使用表达式(如文件语言)来动态设置文件名。对于消费者,它被用作文件名过滤器。对于制作者,用于评估要写入的文件名。如果设置了表达式,它将优先于 CamelFileName 标头。(注:标头本身也可以是表达式)。表达式选项支持 String 和 Expression 类型。如果表达式是 String 类型,则始终使用文件语言评估。如果表达式是 Expression 类型,则使用指定的 Expression 类型 - 例如,这允许您使用 OGNL 表达式。对于消费者,您可以使用它来过滤文件名,以便实例使用文件语言语法:mydata-$\\{date:now:yyyMMdd}.txt。生产者支持 CamelOverruleFileName 标头,其优先级高于任何现有的 CamelFileName 标头;CamelOverruleFileName 是一个仅使用一次的标头,因此可以更容易地避免临时存储 CamelFileName 并在以后恢复。 | 字符串 | |
bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
删除 (使用者) | 如果为 true,则会在成功处理后删除该文件。 | false | 布尔值 |
moveFailed (consumer) | 根据简单语言设置移动失败表达式。例如,要将文件移动到 .error 子目录,请使用: .error。注意:将文件移动到故障位置时,Camel 将处理错误,不会再次获取该文件。 | 字符串 | |
noop (消费者) | 如果为 true,则文件不会以任何方式移动或删除。这个选项适用于只读数据,或 ETL 类型要求。如果 noop=true,Camel 也设置 idempotent=true,以避免再次消耗相同的文件。 | false | 布尔值 |
preMove (consumer) | 表达式(如文件语言)用于在处理之前动态设置文件名。例如,要将 in-progress 文件移动到 order 目录中,则将此值设置为 order。 | 字符串 | |
preSort (consumer) | 启用预排序后,消费者将在轮询期间对文件和目录名称进行排序,该名称从文件系统检索。如果您需要按排序顺序对文件执行操作,您可能需要执行此操作。预排序在消费者开始过滤前执行,并接受 Camel 处理的文件。这个选项是 default=false 代表禁用。 | false | 布尔值 |
递归 (使用者) | 如果一个目录,也会在所有子目录中查找文件。 | false | 布尔值 |
sendEmptyMessageWhenIdle (consumer) | 如果轮询使用者没有轮询任何文件,您可以启用此选项来发送空消息(无正文)。 | false | 布尔值 |
directoryMustExist (使用者(高级) | 与 startDirectoryMustExist 选项类似,但在轮询期间应用(在启动消费者后)。 | false | 布尔值 |
exceptionHandler (消费者) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不在使用。默认情况下,使用者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
ExchangePattern (消费者) | 在消费者创建交换时设置交换模式。 Enum 值:
| ExchangePattern | |
ExtendedAttributes (使用者(高级) | 定义所需的文件属性:与 posix:permissions,posix:owner,basic:lastAccessTime,它支持基本通配符,如 posix:, basic:lastAccessTime。 | 字符串 | |
inProgressRepository (使用者(高级) | A pluggable in-progress repository org.apache.camel.spi.IdempotentRepository.in-progress 存储库用于考虑当前正在使用的进度文件。默认情况下使用基于内存的存储库。 | IdempotentRepository | |
localWorkDirectory (消费者) | 消耗时,本地工作目录可以直接将远程文件内容存储在本地文件中,以避免将内容加载到内存中。这很有用,如果您消耗一个非常大的远程文件,因此可以节省内存。 | 字符串 | |
onCompletionExceptionHandler (consumer (advanced)) | 要使用自定义 org.apache.camel.spi.ExceptionHandler 来处理在完成过程中的文件期间发生的任何抛出异常,其中使用者执行提交或回滚。默认实施将在 WARN 级别记录任何异常并忽略。 | ExceptionHandler | |
pollStrategy (使用者(高级) | 可插拔 org.apache.camel.PollingConsumerPollingStrategy 允许您提供自定义实施来控制在轮询操作期间通常会发生错误处理,然后再创建交换并在 Camel 中路由。 | PollingConsumerPollStrategy | |
probeContentType (使用者(高级) | 是否启用内容类型的探测。如果启用,使用者使用 Files#probeContentType (java.nio.file.Path)来确定文件的内容类型,并将其存储在消息上存储为 key Exchange#FILE_CONTENT_TYPE 的标头。 | false | 布尔值 |
processStrategy (使用者(高级) | 可插拔 org.apache.camel.component.file.GenericFileProcessStrategy 允许您实施自己的 readLock 选项或类似选项。也可以在消耗文件之前满足特殊条件时使用,如特殊就绪的文件存在。如果设置了这个选项,则不会应用 readLock 选项。 | GenericFileProcessStrategy | |
resumeStrategy (使用者(高级) | 为文件设置恢复策略。这样,可以在停止应用程序前定义在上点后恢复读取文件的策略。有关实现详情,请参阅 FileConsumerResumeStrategy。 | FileConsumerResumeStrategy | |
startingDirectoryMustExist (consumer (advanced)) | 启动目录是否必须存在。请记住,autoCreate 选项是默认启用的,这意味着如果起始目录不存在,则通常会自动创建。您可以禁用 autoCreate 并启用此功能,以确保起始目录必须存在。如果目录不存在,将抛出异常。 | false | 布尔值 |
startingDirectoryMustHaveAccess (consumer (advanced)) | 启动目录是否有访问权限。请记住,startDirectoryMustExist 参数必须设置为 true 才能验证该目录是否存在。如果目录没有读写权限,将抛出异常。 | false | 布尔值 |
appendChars (producer) | 用于在编写文件后附加字符(文本)。例如,在编写和附加新文件或现有文件时,这可用于添加新行或其他分隔符。要指定新行(slash-n 或 slash-r)或 tab (slash-t)字符,然后使用额外的斜杠(eg slash-slash-n 转义。 | 字符串 | |
fileExist (producer) | 如果文件已具有相同名称,则需要做什么。覆盖(默认)替换现有文件。- Append - 向现有文件添加内容。- Fail - 抛出 GenericFileOperationException,表示已存在已存在文件。- Ignore - 静默忽略问题,且不会覆盖现有文件,但假设一切都正常。- Move - 选项需要使用 moveExisting 选项进行配置。选项 eagerDeleteTargetFile 可用于控制移动文件时要执行的操作,并且存在现有文件,否则会导致移动操作失败。在编写目标文件前,Move 选项将移动任何现有文件。- TryRename 仅在使用 tempFileName 选项时才适用。这允许尝试将文件从临时名称重命名为实际名称,而无需执行任何存在检查。在某些文件系统中,这个检查可能会更快,特别是 FTP 服务器。 Enum 值:
| 覆盖 | GenericFileExist |
Flatten (producer) | Flatlat 用于扁平化文件名路径以剥离任何前导路径,因此它只是文件名。这可让您递归地消耗到子目录中,但当您将文件写入单个目录中时。在制作者上将其设置为 true 可强制 CamelFileName 标头中的任何文件名被剥离任何领先路径。 | false | 布尔值 |
jailStartingDirectory (producer) | 仅用于定位(限制)只向起始目录(和子)写入文件。这默认是启用的,不允许 Camel 将文件写入外部目录(开箱即用更为安全)。您可以关闭此功能,以允许将文件写入起始目录之外的目录,如父目录或根文件夹。 | true | 布尔值 |
lazyStartProducer (producer) | 制作者是否应启动 lazy (在第一个消息中)。通过启动 lazy,您可以使用此选项来允许 CamelContext 和路由在制作者启动期间启动,并导致路由启动失败。通过将这个启动延迟到延迟,那么可以通过 Camel 的路由错误处理程序路由消息期间,可以处理启动失败。请注意,在处理第一个消息时,创建并启动制作者可能需要稍等时间,并延长处理的总处理时间。 | false | 布尔值 |
moveExisting (producer) | 用于计算文件名在配置 fileExist=Move 时使用的表达式(如文件语言)。要将文件移动到备份子目录中,只需输入备份。这个选项只支持以下文件语言令牌: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 选项相同,但可以对使用文件语言的临时文件名命名提供更精细的控制。tempFilename 的位置相对于选项 'fileName' 中的最终文件位置,而不是 base uri 中的目标目录。例如,如果选项 fileName 包含目录前缀:dir/finalFilename,tempFileName 相对于那个子目录 dir。 | 字符串 | |
tempPrefix (producer) | 此选项用于使用临时名称写入文件,然后在写入完成后将它重命名为实际名称。可用于识别要写入的文件,并且避免消费者(不使用专用读取锁定)读取进度文件。在上传大型文件时,FTP 通常使用。 | 字符串 | |
allowNullBody (producer (advanced)) | 用于指定在文件写入过程中是否允许 null 正文。如果设置为 true,则会创建一个空文件,如果设为 false,并且尝试发送 null 正文到文件组件,"Cannot writing null bodyException of 'Cannot write null body to file.' 将会抛出。如果 fileExist 选项设置为 'Override',则文件将被截断,如果设为 append,则文件将保持不变。 | false | 布尔值 |
chmod (生成者(高级) | 指定由制作者发送的文件权限,chmod 值必须在 000 到 777 之间;如果一个前导数字,如 0755,则我们会忽略它。 | 字符串 | |
chmodDirectory (生成者) | 指定制作者创建缺少的目录时使用的目录权限,chmod 值必须在 000 到 777 之间;如果出现类似 0755 的前导数字,则我们会忽略它。 | 字符串 | |
eagerDeleteTargetFile (producer (advanced)) | 是否强制删除任何现有目标文件。这个选项只适用于使用 fileExists=Override 和 tempFileName 选项。在写入 temp 文件前,您可以使用它禁用(将其设置为 false)删除目标文件。例如,您可以编写大型文件,并希望在编写 temp 文件期间存在目标文件。这样可保证目标文件在最后一次时间之前,只要将 temp 文件重命名为目标文件名之前。这个选项还用来控制是否在启用 fileExist=Move 时删除任何现有的文件,并且存在现有文件。如果此选项 copyAndDeleteOnRenameFails false,则如果现有文件存在,则会抛出异常(如果其为 true),然后在移动操作前删除现有文件。 | true | 布尔值 |
forceWrites (生成者(高级) | 是否强制同步对文件系统的写入。如果您不希望此级别保证,您可以关闭此项,例如,如果写入日志/审计日志等,这会产生更好的性能。 | true | 布尔值 |
keepLastModified (producer (advanced)) | 将从源文件(如果有)中保留最后修改的时间戳。将使用 Exchange.FILE_LAST_MODIFIED 标头来定位时间戳。此标头可以包含 java.util.Date 或带有时间戳的长时间。如果时间戳存在,并且启用了 选项,它将在写入文件中设置此时间戳。注意:此选项仅适用于文件制作者。您不能将此选项用于任何 ftp 制作者。 | false | 布尔值 |
moveExistingFileStrategy (producer (advanced)) | 策略(Custom Strategy),用于在配置了 fileExist=Move 时移动具有特殊命名令牌的文件。默认情况下,如果没有提供自定义策略,则使用实施。 | FileMoveExistingStrategy | |
autoCreate (高级) | 在文件路径名称中自动创建缺少的目录。对于文件消费者,这意味着创建起始目录。对于文件制作者,这表示应写入文件的目录。 | true | 布尔值 |
bufferSize (advanced) | 用于编写文件的缓冲区大小(或如果是 FTP 用于下载和上传文件)的缓冲区大小(以字节为单位)。 | 131072 | int |
copyAndDeleteOnRenameFail (advanced) | 如果文件无法直接重命名,并且是否回退到复制和删除文件。此选项不适用于 FTP 组件。 | true | 布尔值 |
renameUsingCopy (高级) | 使用 copy 和 delete 策略执行重命名操作。这主要用于常规重命名操作不可靠的环境(例如在不同文件系统或网络之间)。这个选项优先于 copyAndDeleteOnRenameFail 参数,该参数将自动回退到复制和删除策略,但只有在额外的延迟后才会返回。 | false | 布尔值 |
同步 (高级) | 设置是否应严格使用同步处理。 | false | 布尔值 |
antExclude (filter) | ant 样式过滤排除。如果同时使用 antInclude 和 antExclude,则 antExclude 优先于 antInclude。可以使用逗号分隔的格式指定多个排除项。 | 字符串 | |
antFilterCaseSensitive (filter) | 在 ant 过滤器中设置区分大小写的标志。 | true | 布尔值 |
antInclude (filter) | Ant 风格的过滤器包含.可以使用逗号分隔的格式指定多个包含内容。 | 字符串 | |
eagerMaxMessagesPerPoll (filter) | 允许控制 maxMessagesPerPoll 中的限制是否 eager。如果 eager,则限制是在扫描文件的过程中。其中,false 会扫描所有文件,然后执行排序。将此选项设置为 false 可先排序所有文件,然后限制轮询。请注意,这需要较高的内存用量,因为所有文件都在内存中执行排序。 | true | 布尔值 |
exclude (filter) | 用于排除文件,如果文件名与 regex 模式匹配(匹配时不区分大小写)。请注意,如果您使用加号等符号,如果将其配置为 endpoint uri,则需要使用 RAW ()语法进行配置。有关配置 endpoint 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 EIP 模式的选项,让 Camel 跳过已处理的文件。默认情况下,将使用基于内存的 LRUCache,其中包含 1000 个条目。如果 noop=true,则也会启用幂等性,以避免再次消耗相同的文件。 | false | 布尔值 |
idempotentKey (filter) | 使用自定义幂等密钥。默认情况下,使用文件的绝对路径。您可以使用文件语言(例如,使用文件名和文件大小),您可以执行以下操作: idempotentKey=$\\{file:name}-$\\{file:size}。 | 字符串 | |
idempotentRepository (filter) | 可插拔存储库 org.apache.camel.spi.IdempotentRepository,如果未指定且幂等为 true,则默认使用 MemoryIdempotentRepository。 | IdempotentRepository | |
include (filter) | 用于包含文件,如果文件名与 regex 模式匹配(匹配时不区分大小写)。请注意,如果您使用加号等符号,如果将其配置为 endpoint uri,则需要使用 RAW ()语法进行配置。有关配置 endpoint uris 的更多详细信息。 | 字符串 | |
includeExt (filter) | 用于包括匹配文件扩展名名称的文件(区分大小写)。例如,要包含 txt 文件,然后使用 includeExt=txt。多个扩展可以用逗号分开,例如要包含 txt 和 xml 文件,请使用 includeExt=txt,xml。请注意,文件扩展包含所有部分,例如,名为 mydata.tar.gz 的文件将扩展为 tar.gz。要获得更大的灵活性,请使用 include/exclude 选项。 | 字符串 | |
maxDepth (filter) | 递归处理目录时要遍历的最大深度。 | 2147483647 | int |
maxMessagesPerPoll (filter) | 定义每个轮询收集的最大消息。默认情况下不设置最大值。可用于设置 e.g. 1000 的限制,以避免在启动有数千个文件的服务器时避免。设置一个 0 或负值以禁用它。注意:如果此选项正在使用中,则文件和 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 - 使用 - markerFile - Camel 创建一个标志文件(fileName.camelLock),然后保存该锁定。此选项不适用于 FTP 组件 - 已更改 - 更改正在使用文件长度/修改时间戳来检测当前是否正在复制该文件。至少将使用 1 sec 来确定这一点,因此此选项无法像其他人一样使用文件,但可以更可靠,因为 JDK IO API 始终无法确定文件当前是否被其他进程使用。选项 readLockCheckInterval 可用于设置检查频率。- fileLock - 正在使用 java.nio.channels.FileLock。这个选项不适用于 Windows OS 和 FTP 组件。在通过 mount/share 访问远程文件系统时,应避免使用这种方法,除非该文件系统支持分布式文件锁定。- 重命名 - 使用重命名 - 将其重新命名文件作为测试,是否可以获得独占的 read-lock。- 幂等 - (文件组件)的幂等性是将 idempotentRepository 用作 read-lock。这允许使用读取锁定,在幂等存储库实施支持时支持集群。- idempotent-changed - (仅限文件组件)使用幂等的Repository,并作为组合的 read-lock 更改。这允许使用读取锁定,在幂等存储库实施支持时支持集群。- idempotent-rename - (仅限文件组件)幂等-rename 使用幂等的Repository,并重命名为组合的 read-lock。这允许使用读取锁定,在幂等存储库实施支持时支持集群。注意:各种读取锁不是在集群模式下工作的,不同节点上的并发用户对共享文件系统上的相同文件是竞争的。使用接近 atomic 操作的 markerFile 创建空标志文件,但不保证在集群中工作。fileLock 可能更好,但文件系统需要支持分布式文件锁定等。如果幂等存储库支持集群,如 Hazelcast 组件或 Infinispan,则使用幂等的读取锁定可以支持集群。 Enum 值:
| none | 字符串 |
readLockCheckInterval (lock) | read-lock 的 millis 间隔(如果读锁定支持)。这个间隔用于尝试获取读取锁定的休眠。例如,在使用更改的读取锁定时,您可以将一个更高的间隔周期设置为 cater 以进行慢的写操作。默认 1 sec。如果制作者的写入速度非常慢,则可能很快。注意:对于 FTP,默认的 readLockCheckInterval 为 5000。readLockTimeout 值必须高于 readLockCheckInterval,但经验规则是至少有 2 个或多于 readLockCheckInterval 的超时。这是为了确保读取锁定进程允许时间试图在超时被命中前获取锁定。 | 1000 | long |
readLockDeleteOrphanLockFiles (lock) | 如果 Camel 没有被正确关闭(如 JVM 崩溃),则在启动时是否应通过标志文件读取任何孤立的读取锁定文件(如 JVM 崩溃)。如果将此选项变为 false,则任何孤立锁定文件将导致 Camel 不会尝试提取该文件,这也可能是因为另一个节点同时从同一共享目录读取文件。 | true | 布尔值 |
readLockIdempotentReleaseAsync (lock) | 延迟发行任务是否应同步或异步。请参阅 readLockIdempotentReleaseDelay 选项的详情。 | false | 布尔值 |
readLockIdempotentReleaseAsyncPoolSize (lock) | 使用异步发布任务时,调度线程池中的线程数量。在几乎所有用例中,使用默认值 1 核心线程应足够了,只有在更新幂等存储库缓慢或者有很多文件进行处理时,才会将其设置为更高的值。如果您使用共享线程池,配置 readLockIdempotentReleaseExecutorService 选项,则此选项不会被使用。请参阅 readLockIdempotentReleaseDelay 选项的详情。 | int | |
readLockIdempotentReleaseDelay (lock) | 是否在 millis 期间延迟发布任务。这可用于延迟发行版本任务,在具有共享幂等存储库的主动/主动集群场景中,延迟扩展窗口,以便确保其他节点由于竞争条件而无法扫描和获取同一文件。通过扩展发行版本任务的时间窗口有助于防止出现以下情况。请注意,只有在将 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) | 是否使用带更改的标记文件、重命名或专用读取锁定类型。默认情况下,使用标志文件以及保护其他进程获取同一文件。通过将这个选项设置为 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,但经验规则是至少有 2 个或多于 readLockCheckInterval 的超时。这是为了确保读取锁定进程允许时间试图在超时被命中前获取锁定。 | 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 | |
调度程序 (调度程序) | 要使用 camel-spring 或 camel-quartz 组件的 cron 调度程序。使用值 spring 或 quartz 用于内置在调度程序中。 | none | 对象 |
schedulerProperties (scheduler) | 在使用自定义调度程序或任何基于 Spring 的调度程序时配置附加属性。 | map | |
启动Scheduler (scheduler) | 调度程序是否应自动启动。 | true | 布尔值 |
timeUnit (scheduler) | initialDelay 和 delay 选项的时间单位。 Enum 值:
| MILLISECONDS | TimeUnit |
使用FixedDelay (scheduler) | 控制是否使用固定延迟或固定率。详情请参阅 JDK 中的 ScheduledExecutorService。 | true | 布尔值 |
shuffle (sort) | 影响文件列表(按随机顺序排序)。 | false | 布尔值 |
sortBy (sort) | 使用文件语言进行内置排序.支持嵌套排序,因此您可以按照文件名排序,并根据修改的日期作为第二组排序。 | 字符串 | |
排序 器(sort) | 可插拔排序器作为一个 java.util.Comparator 类。 | 比较器 |
默认情况下 ,文件生成者
的默认行为将覆盖任何现有的文件(如果存在文件相同)。