25.4. 端点选项
FTP 端点使用 URI 语法进行配置:
ftp:host:port/directoryName
使用以下路径和查询参数:
25.4.1. 路径参数(3 参数)
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
host (common) | 必需 FTP 服务器的主机名。 | 字符串 | |
port (common) | FTP 服务器的端口。 | int | |
directoryName (common) | 启动目录。 | 字符串 |
25.4.2. 查询参数(111 参数)
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
二进制 (common) | 指定文件传输模式、BINARY 或 ASCII。默认为 ASCII (false)。 | false | 布尔值 |
charset (common) | 此选项用于指定文件编码。您可以在消费者上使用此功能,以指定文件的编码,它允许 Camel 在访问文件内容时加载文件内容。在编写文件时,您可以使用此选项指定写入该文件的 charset。请注意,当编写 Camel 文件时,可能需要将消息内容读取在内存中才能将数据转换为配置的 charset,因此如果您有大量消息,则不要使用它。 | 字符串 | |
disconnect (common) | 使用后是否断开与远程 FTP 服务器的连接。断开连接将仅断开当前与 FTP 服务器的连接。如果您有要停止的消费者,则需要停止 consumer/route。 | false | 布尔值 |
doneFileName (common) | producer :如果提供,则 Camel 将在编写原始文件时写入第二次完成的文件。done 文件为空。这个选项配置要使用的文件名。您可以指定固定名称。或者,您可以使用动态占位符。done 文件将始终写在与原始文件相同的文件夹中。consumer :如果提供,Camel 仅在文件存在时使用文件。这个选项配置要使用的文件名。您可以指定固定名称。或者,您可以使用动态占位符。done 文件始终预期在与原始文件相同的文件夹中。仅支持 $\\{file.name} 和 $\\{file.name.next} 作为动态占位符。 | 字符串 | |
fileName (common) | 使用 Expression (如文件语言)来动态设置文件名。对于消费者,它用作文件名过滤器。对于生成者,它用于评估要写入的文件名。如果设置了表达式,它将优先于 CamelFileName 标头。(注意:标头本身也可以是 Expression)。表达式选项支持 String 和 Expression 类型。如果表达式是字符串类型,则始终使用 File Language 来评估。如果表达式是 Expression 类型,则会使用指定的 Expression 类型 - 例如,您可以使用 OGNL 表达式。对于消费者,您可以使用它来过滤文件名,因此您可以使用 File Language 语法:mydata-$\\{date:now:yyyyMMdd}.txt 来使用现在使用的文件。producers 支持 CamelOverruleFileName 标头,其优先于任何现有 CamelFileName 标头;CamelOverruleFileName 是一个仅一次的标头,并便于避免临时存储 CamelFileName 并在以后恢复它。 | 字符串 | |
passiveMode (common) | 设置被动模式连接。默认为活动模式连接。 | false | 布尔值 |
分隔符 (common) | 设置要使用的路径分隔符。unix = 使用 unix 风格的路径分隔符 Windows = 使用窗口风格路径分隔符 Auto = (默认)在文件名中使用现有路径分隔符。 Enum 值:
| UNIX | PathSeparator |
transferLoggingIntervalSeconds (common) | 在记录上传和下载操作的进度时,配置使用的时间间隔(以秒为单位)。这可用于在操作需要更长的时间时记录进度。 | 5 | int |
transferLoggingLevel (common) | 配置日志记录在记录上传和下载操作进度时要使用的日志级别。 Enum 值:
| DEBUG | LoggingLevel |
transferLoggingVerbose (common) | 配置上传和下载操作进度执行详细(粒度)日志记录。 | false | 布尔值 |
fastExistsCheck (common (advanced)) | 如果将此选项设为 true,则 camel-ftp 将直接使用列表文件来检查是否存在该文件。由于某些 FTP 服务器可能不支持直接列出文件,如果选项为 false,则 camel-ftp 将使用旧方法列出目录并检查该文件是否存在。此选项还会影响 readLock=changed,以控制它是否执行快速检查来更新文件信息。如果 FTP 服务器有很多文件,则这可用于加快进程。 | false | 布尔值 |
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 也设置幂等=true,以避免再次消耗相同的文件。 | false | 布尔值 |
preMove (consumer) | 在处理前移动文件名的表达式(如文件语言)。例如,要将 in-progress 文件移到 order 目录中,将此值设置为 order。 | 字符串 | |
preSort (consumer) | 启用预排序后,消费者将在轮询过程中对文件和目录名称进行排序,这从文件系统检索。如果您需要按照排序的顺序对文件进行操作,您可能需要执行此操作。预排序是在消费者开始过滤前执行的,并接受由 Camel 处理的文件。这个选项是 default=false 表示禁用。 | false | 布尔值 |
recursion (consumer) | 如果某个目录,也会在所有子目录中查找文件。 | false | 布尔值 |
resumeDownload (consumer) | 配置是否启用了恢复下载。这必须被 FTP 服务器支持(大多数 FTP 服务器都支持它)。此外,还必须配置本地WorkDirectory 选项,以便下载的文件存储在本地目录中,且必须启用选项二进制文件,这是支持恢复下载所必需的。 | false | 布尔值 |
sendEmptyMessageWhenIdle (consumer) | 如果轮询使用者没有轮询任何文件,您可以启用此选项来发送空消息(无正文)。 | false | 布尔值 |
streamDownload (consumer) | 设置不使用本地工作目录时要使用的下载方法。如果设置为 true,则在读取时将远程文件流传输到路由。当设置为 false 时,远程文件会在发送到路由前被加载到内存中。如果启用这个选项,则必须设置 stepwise=false,因为无法同时启用这两个步骤。 | false | 布尔值 |
下载 (consumer (advanced)) | FTP 使用者是否应下载该文件。如果此选项设为 false,则消息正文将为空,但消费者仍会触发具有文件详情的 Camel Exchange,如文件名、文件大小等。只是不下载该文件。 | false | 布尔值 |
exceptionHandler (consumer (advanced)) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer (advanced)) | 在消费者创建交换时设置交换模式。 Enum 值:
| ExchangePattern | |
handleDirectoryParserAbsoluteResult (consumer (advanced)) | 如果目录解析器以绝对路径导致,则允许设置消费者如何处理路径中的子文件夹和文件。因此,有些 FTP 服务器可能会用绝对路径返回文件名,那么 FTP 组件需要通过将返回的路径转换为相对路径来应对这一点。 | false | 布尔值 |
ignoreFileNotFoundOrPermissionError (consumer (advanced)) | 是否忽略(尝试列出目录中的文件还是下载文件时),这些文件不存在还是因为权限错误。默认情况下,当某个目录或文件不存在或权限不足时,会抛出异常。将这个选项设置为 true 允许忽略它。 | false | 布尔值 |
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 | |
processStrategy (consumer (advanced)) | 一个可插拔的 org.apache.camel.component.file.GenericFileProcessStrategy,允许您实现自己的 readLock 选项或类似。在消耗文件之前,也可以使用特殊条件,如存在特殊的就绪文件。如果设置了这个选项,则不会应用 readLock 选项。 | GenericFileProcessStrategy | |
useList (consumer (advanced)) | 在下载文件时,是否使用 LIST 命令。默认值为 true。在某些情况下,您可能想要下载特定的文件,且不允许使用 LIST 命令,因此您可以将这个选项设置为 false。请注意,使用这个选项时,要下载的具体文件不包括 meta-data 信息,如文件大小、时间戳、权限等,因为这些信息只能在使用 LIST 命令时检索。 | true | 布尔值 |
fileExist (producer) | 如果文件已存在具有相同名称的文件,则该怎么办。覆盖(这是默认设置)替换现有文件。- Append - 将内容添加到现有文件中。- Fail - 抛出一个 GenericFileOperationException,表示已有的文件。- Ignore - 静默忽略问题,且不会覆盖现有的文件,但假设所有内容正常。- Move - 选项需要使用 moveExisting 选项。选项 eagerDeleteTargetFile 可以用来控制移动文件时要执行的操作,并且已存在现有文件,否则会导致移动操作失败。Move 选项将在编写目标文件前移动任何现有文件。- 只有在使用 tempFileName 选项时才适用 TryRename。这允许尝试将文件从临时名称重命名为实际名称,而无需执行任何存在检查。对于某些文件系统,这个检查可能会更快,特别是 FTP 服务器。 Enum 值:
| 覆盖 | GenericFileExist |
flatten (producer) | 扁平化用于扁平化任何前导路径的文件名路径,因此它只是文件名。这样,您可以递归地将文件写入子目录中,但当您将文件写入另一个目录中时,它们将写入到单个目录中。在制作者上将其设置为 true 可强制在 CamelFileName 标头中为任何前导路径去除任何文件名。 | false | 布尔值 |
jailStartingDirectory (producer) | 仅用于 jailing (限制)将文件写入启动目录(和子)。默认情况下,这不允许 Camel 将文件写入外部目录(其开箱即用)。您可以将其关闭,以允许将文件写入启动目录之外的目录,如父目录或根文件夹。 | true | 布尔值 |
lazyStartProducer (producer) | 生成者是否应懒惰启动 (在第一个消息中)。通过懒惰启动,您可以使用此选项来允许 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 选项相同,但提供对临时文件名命名更加精细的控制,因为它使用 File 语言。tempFilename 的位置相对于选项 'fileName' 中的最终文件位置,而不是基础 uri 中的目标目录。例如,如果选项 fileName 包含一个目录前缀:dir/finalFilename,则 tempFileName 相对于该子目录 dir。 | 字符串 | |
tempPrefix (producer) | 此选项用于使用临时名称写入文件,然后在写入完成后将其重命名为实际名称。可用于识别正在写入的文件,并避免消费者(不使用专用读锁定)读取进度文件中。FTP 通常在上传大型文件时使用。 | 字符串 | |
allowNullBody (producer (advanced)) | 用于指定在文件写入过程中是否允许 null 正文。如果设置为 true,则会创建一个空文件,设置为 false,并尝试向文件组件发送 null 正文,将抛出 'Cannot write null body 的 GenericFileWriteException。'如果 fileExist 选项设为 'Override',则该文件将被截断,如果设为附加该文件,则该文件将保持不变。 | false | 布尔值 |
chmod (producer (advanced)) | 允许您在存储的文件上设置 chmod。例如 chmod=640。 | 字符串 | |
disconnectOnBatchComplete (producer (advanced)) | Batch 上传完成后是否与远程 FTP 服务器断开连接。disconnectOnBatchComplete 只会断开当前与 FTP 服务器的连接。 | false | 布尔值 |
eagerDeleteTargetFile (producer (advanced)) | 是否强制删除任何现有目标文件。这个选项仅在使用 fileExists=Override 和 tempFileName 选项时才适用。您可以使用它来禁用(将其设置为 false)在写入临时文件前删除目标文件。例如,您可以编写大型文件,并希望在编写临时文件过程中存在目标文件。这样可确保目标文件仅在最后一次时间之前被删除,只需在临时文件重命名为目标文件名之前。此选项还用于控制在启用 fileExist=Move 时是否删除任何现有文件,并且存在现有的文件。如果此选项 copyAndDeleteOnRenameFails false,那么如果现有文件存在,则会抛出异常(如果为 true),则在移动操作前删除现有文件。 | true | 布尔值 |
keepLastModified (producer (advanced)) | 将保留源文件的最后修改的时间戳(若有)。将使用 Exchange.FILE_LAST_MODIFIED 标头来定位时间戳。此标头可以包含 java.util.Date 或带有时间戳的长度。如果时间戳存在,并且启用了 选项,它将在写入的文件中设置此时间戳。注:此选项仅适用于文件制作者。您不能将此选项与任何 ftp producer 一起使用。 | false | 布尔值 |
moveExistingFileStrategy (producer (advanced)) | 用于在配置 fileExist=Move 时使用特殊命名令牌的策略(自定义策略)。默认情况下,如果没有提供自定义策略,则使用实施。 | FileMoveExistingStrategy | |
sendNoop (producer (advanced)) | 在将文件上传到 FTP 服务器前,是否将 noop 命令作为预写检查发送。这默认是启用的,因为连接的验证仍有效,这样可以静默地重新连接可以上传该文件。但是,如果这会导致问题,您可以关闭这个选项。 | true | 布尔值 |
activePortRange (advanced) | 在活跃模式下设置客户端端口范围。语法为:minPort-maxPort Both 端口号,包含 10000-19999,使其包含所有 1xxxx 端口。 | 字符串 | |
auto create (advanced) | 在文件的路径中自动创建缺少的目录。对于文件消费者,这意味着创建启动目录。对于文件制作者,这意味着应将文件写入的目录。 | true | 布尔值 |
BufferSize ( advanced) | 用于编写文件的缓冲区大小(或者 FTP 用于下载和上传文件)。 | 131072 | int |
connectTimeout (advanced) | 设置等待连接建立由 FTPClient 和 JSCH 使用的连接超时。 | 10000 | int |
ftpClient (advanced) | 使用 FTPClient 的自定义实例。 | FTPClient | |
ftpClientConfig (advanced) | 要使用 FTPClientConfig 的自定义实例来配置端点应使用的 FTP 客户端。 | FTPClientConfig | |
ftpClientConfigParameters (advanced) | FtpComponent 用来为 FTPClientConfig 提供额外的参数。 | Map | |
ftpClientParameters (advanced) | FtpComponent 用来为 FTPClient 提供额外的参数。 | Map | |
maximumReconnectAttempts (advanced) | 指定当 Camel 尝试连接到远程 FTP 服务器时的最大重新连接尝试。使用 0 禁用此行为。 | int | |
reconnectDelay (advanced) | 在执行重新连接尝试前,millis Camel 将等待的时间。 | 1000 | long |
siteCommand (advanced) | 设置在成功登录后要执行的可选站点命令。可以使用新行字符分隔多个站点命令。 | 字符串 | |
soTimeout (advanced) | 设置 so timeout FTP 和 FTPS 是 millis 中的 SocketOptions.SO_TIMEOUT 值。建议将其设置为 300000,因为没有挂起的连接。在 SFTP 上,此选项被设置为 JSCH Session 实例上的超时。 | 300000 | int |
步骤( 高级) | 设置在下载文件时,还是在将文件上传到目录时,是否应先更改目录结构。例如,当您因为安全原因而无法更改 FTP 服务器上的目录时,您可以禁用此设置。步骤不能与 streamDownload 一起使用。 | true | 布尔值 |
Sync (advanced) | 设置是否应严格使用同步处理。 | false | 布尔值 |
throwExceptionOnConnectFailed (advanced) | 如果连接失败(dhausted) By 默认异常,则不会抛出异常,并记录 WARN。您可以使用它来启用异常,并处理 org.apache.camel.spi.PollingConsumerPollStrategy 回滚方法的抛出异常。 | false | 布尔值 |
timeout (advanced) | 为等待 FTPClient 使用的回复设置数据超时。 | 30000 | int |
antExclude (filter) | ant 风格的过滤器排除。如果同时使用 antInclude 和 antExclude,则 antExclude 优先于 antInclude。可以使用以逗号分隔的格式指定多个排除项。 | 字符串 | |
antFilterCaseSensitive (filter) | 在 ant 过滤器上设置区分大小写标志。 | true | 布尔值 |
antInclude (filter) | ant 风格的过滤器包括。可使用以逗号分隔的格式指定多个 include。 | 字符串 | |
eagerMaxMessagesPerPoll (filter) | 允许控制 maxMessagesPerPoll 的限制是 eager。如果 eager,则在扫描文件的过程中会进行限制。其中为 false 将扫描所有文件,然后执行排序。将这个选项设置为 false 允许首先排序所有文件,然后限制轮询。请注意,这需要更高的内存用量,因为所有文件详情都在内存中执行排序。 | true | 布尔值 |
exclude (filter) | 用于排除文件(如果文件名与正则表达式模式匹配)(匹配不区分大小写)。请注意,如果您使用加号等符号,如果将其配置为端点 uri,则需要使用 RAW ()语法进行配置。有关配置端点 uri 的更多信息,请参阅。 | 字符串 | |
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:yyyMMdd}。 | 字符串 | |
filterFile (filter) | 根据简单语言过滤文件。例如,要过滤文件大小,您可以使用 $\\{file:size} 5000。 | 字符串 | |
幂等 (过滤) | 使用 Idempotent Consumer EIP 模式的选项,以便 Camel 跳过已经处理的文件。默认情况下,将使用基于内存的 LRUCache,其中包含 1000 个条目。如果 noop=true 也会启用,以避免再次消耗相同的文件。 | false | 布尔值 |
idempotentKey (filter) | 使用自定义幂等键,请执行以下操作:默认情况下,使用该文件的绝对路径。您可以使用 File Language,例如使用文件名和文件大小,您可以执行以下操作:OnlydKey=$\\{file:name}-$\\{file:size}。 | 字符串 | |
idempotentRepository (filter) | 可插拔存储库 org.apache.camel.spi.IdempotentRepository,它默认使用 MemoryIdempotentRepository (如果没有指定),且幂等性为 true。 | IdempotentRepository | |
include (filter) | 用于包含文件,如果文件名与正则表达式模式匹配(匹配不区分大小写)。请注意,如果您使用加号等符号,如果将其配置为端点 uri,则需要使用 RAW ()语法进行配置。有关配置端点 uri 的更多信息,请参阅。 | 字符串 | |
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 或负数设置为禁用它。注意:如果使用这个选项,则文件和 FTP 组件将在任何排序前受到限制。例如,如果您有 100000 文件并使用 maxMessagesPerPoll=500,则仅获取前 500 个文件,然后排序。您可以使用 eagerMaxMessagesPerPoll 选项,并将其设置为 false 以允许首先扫描所有文件,然后对文件进行排序。 | int | |
minDepth (filter) | 递归处理目录时开始处理的最小深度。使用 minDepth=1 表示主目录。使用 minDepth=2 表示第一个子目录。 | int | |
Move (filter) | 在处理后移动文件名的表达式(如简单语言)。将文件移到 .done 子目录中,只需输入 .done。 | 字符串 | |
exclusiveReadLockStrategy (lock) | 可插拔读锁定作为 org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy 实现。 | GenericFileExclusiveReadLockStrategy | |
readLock (lock) | 消费者使用,仅在文件有独占的 read-lock 时轮询文件(例如,该文件不是 in-progress 或 in-progress 或正在写入)。Camel 将等到赋予文件锁定。此选项在策略中提供构建: - none - No read lock is use - markFile - Camel 创建标记文件(fileName.camelLock),然后在其上保存锁定。FTP 组件无法使用这个选项 - Changed - Changed 使用文件长度/修改时间戳来检测文件当前是否复制。至少将使用 1 sec 来确定这一点,因此此选项无法像其他进程一样快速使用文件,但可能会更可靠,因为 JDK IO API 并不总是确定当前由其他进程使用的文件。选项 readLockCheckInterval 可用于设置检查频率。- fileLock - 使用 java.nio.channels.FileLock。这个选项不适用于 Windows OS 和 FTP 组件。在通过 mount/share 访问远程文件系统时,应该避免这种方法,除非该文件系统支持分布式文件锁定。- 重命名是使用尝试将文件重命名为测试(如果我们可以获得专用 read-lock. - 幂等的 - (仅用于文件组件)用于使用幂等结构作为读锁定。如果幂等存储库实现支持集群,这允许使用支持集群的读锁定。- idempotent-changed - (仅限文件组件)幂等性更改是使用幂等的Repository,并作为组合的 read-lock 进行更改。如果幂等存储库实现支持集群,这允许使用支持集群的读锁定。- idempotent-rename - (仅用于文件组件)幂等名称使用幂等权限,并重命名为组合的 read-lock。如果幂等存储库实现支持集群,这允许使用支持集群的读锁定:各种读锁定并不是在集群模式下工作的,其中不同节点上的并发消费者对共享文件系统中的同一文件都是竞争的。使用一个接近原子操作的 markFile 来创建空标记文件,但无法保证在集群中工作。fileLock 可能更好,但文件系统需要支持分布式文件锁定等。如果幂等存储库支持集群,如 Hazelcast 组件或 Infinispan,则使用幂等读锁定支持集群。 Enum 值:
| none | 字符串 |
readLockCheckInterval (lock) | read-lock 的 millis (如果读锁定支持)。这个间隔用于在尝试获取读锁定之间休眠。例如,在使用更改的读锁定时,您可以为较慢的写入设置更高的间隔周期。如果生成者非常慢,则默认值 1 sec. 可能太快。注意:对于 FTP,默认的 readLockCheckInterval 为 5000。readLockTimeout 值必须大于 readLockCheckInterval,但 thumb 的规则是具有至少 2 个或大于 readLockCheckInterval 的超时。这需要确保读锁定进程允许冻结时间,以便在超时命中前尝试获取锁定。 | 1000 | long |
readLockDeleteOrphanLockFiles (lock) | 如果 Camel 没有正确关闭,则是否应在启动时读取带有标记文件(比如 JVM 崩溃)删除任何孤立的读锁定文件(如果 Camel 没有被正确关闭)。如果将此选项设置为 false,则任何孤立的锁定文件将导致 Camel 不尝试获取该文件,这可能是因为另一个节点同时从同一共享目录读取文件。 | true | 布尔值 |
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) | 可选的 timeout (如果 read-lock 支持)用于读锁定。如果无法授予 read-lock 并触发超时,则 Camel 将跳过该文件。下一次轮询 Camel 时,将再次尝试 文件,这一次可能会授予读锁定。使用 0 或较低值来指示永久值。当前 fileLock、change 和 rename 支持超时。注意:对于 FTP,默认的 readLockTimeout 值为 20000,而不是 10000。readLockTimeout 值必须大于 readLockCheckInterval,但 thumb 的规则是具有至少 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 | |
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 | 布尔值 |
帐户 (安全) | 用于登录的帐户。 | 字符串 | |
密码 (安全) | 用于登录的密码。 | 字符串 | |
用户名 (安全) | 用于登录的用户名。 | 字符串 | |
shuffle (sort) | 影响文件列表(按随机顺序排列)。 | false | 布尔值 |
sortBy (sort) | 使用文件语言内置排序。支持嵌套排序,以便您可以按文件名排序,并作为按修改日期排序的第二个组。 | 字符串 | |
排序 者(排序) | 可插拔排序器作为 java.util.Comparator 类。 | 比较器 |