管理员可以配置网络文件夹(称为监视文件夹),这样,当用户将文件(如PDF文件)放置到监视文件夹时,将调用已配置的服务操作并处理该文件。 服务执行指定操作后,会将修改后的文件保存到指定的输出文件夹中。
配置监视文件夹端点之前,请配置监视文件夹服务。 监视文件夹服务的配置参数有两个用途:
配置“监视文件夹”服务后,可为目标服务添加“监视文件夹”端点。 添加端点时,您会设置值,如将文件或文件夹放置到已配置监视文件夹服务的输入文件夹中时要调用的服务名称和操作名称。 有关配置监视文件夹服务的详细信息,请参阅监视文件夹服务设置。
可通过以下两种方式创建监视文件夹:
配置监视文件夹端点的设置时,在“路径”框中键入父目录的完整路径,并附加要创建的监视文件夹的名称,如本例所示:
C:\MyPDFs\MyWatchedFolder
由于MyWatchedFolder文件夹尚不存在,AEM表单会尝试在该位置创建它。
在配置监视的文件夹端点之前在文件系统上创建一个文件夹,然后在“路径”框中键入完整路径。
在群集环境中,将用作监视文件夹的文件夹必须在文件系统或网络上具有可访问性、可写性和共享性。 在这种情况下,群集的每个应用程序服务器实例都必须有权访问同一共享文件夹。
在Windows中,如果应用程序服务器作为服务运行,则必须通过以下方式之一以对共享文件夹的适当访问权限启动它:
监视文件夹可以链接在一起,这样一个监视文件夹的结果文档就是下一个监视文件夹的输入文档。 每个被监视的文件夹都可以调用不同的服务。 通过以这种方式配置监视的文件夹,可以调用多个服务。 例如,一个监视文件夹可以将PDF文件转换为Adobe PostScript®,另一个监视文件夹可以将PostScript文件转换为PDF/A格式。 为此,只需将第一个端点定义的监视文件夹的result文件夹设置为指向第二个端点定义的监视文件夹的input文件夹。
第一次转换的输出将转到\path\result。 第二个转换的输入为\path\result,第二个转换的输出将转到\path\result\result (或在“结果文件夹”框中为第二个转换定义的目录)。
对于监视文件夹端点,用户可以通过将输入文件或文件夹从桌面复制或拖动到监视文件夹来调用。 文件将按文件到达的顺序进行处理。
对于监视的文件夹端点,如果作业只需要一个输入文件,则用户可以将该文件复制到监视的文件夹的根目录中。
如果作业包含多个输入文件,则用户必须在监视的文件夹层次结构之外创建一个包含所有必需文件的文件夹。 此新文件夹应包括输入文件(如果进程需要,还可选择包含DDX文件)。 作业文件夹构建完成后,用户将其复制到监视文件夹的输入文件夹中。
确保应用程序服务器已删除对监视文件夹中文件的访问权限。 如果AEM表单在扫描后无法从输入文件夹删除文件,将无限次调用相关进程。
当输入是文件夹且输出由多个文件组成时,AEM forms将创建一个与输入文件夹同名的输出文件夹,并将输出文件复制到该文件夹中。 当输出由包含键值对的文档映射组成时(如输出进程的输出),键将用作输出文件名。
端点进程产生的输出文件名不能包含字母、数字和句点(.)以外的字符 在文件扩展名之前。 AEM表单会将其他字符转换为十六进制值。
客户端应用程序从监视的文件夹结果文件夹中选取结果文档。 进程错误记录在监视的文件夹失败文件夹中。
监视文件夹模块包含以下服务:
除了上面列出的服务外,“监视文件夹”还依赖于其他服务,包括调度作业的调度程序服务和支持目标服务异步调用的作业管理器服务。
监视文件夹服务负责创建、更新和删除端点。 管理员创建终结点后,将根据指定的重复间隔或cron表达式,由调度程序服务触发这些终结点。
此图说明了监视文件夹处理调用请求的方式。
使用监视文件夹调用服务的过程如下:
客户端应用程序将文件或文件夹放置在监视的文件夹输入文件夹中。
当作业扫描间隔发生时,调度程序服务将调用provider.file_scan_service处理输入文件夹中的文件或文件夹。
provider.file_scan_service执行以下任务:
为终结点配置的目标服务会同步或异步调用。 使用为终结点配置的用户名和密码调用目标服务。
provider.file_write_results_service处理目标服务调用的响应或失败。 成功后,输出将基于端点配置保存到结果文件夹。 如果端点配置为在成功完成后保留结果,则provider.file_write_results_service也保留源。
当目标服务调用导致失败时,provider.file_write_results_service将失败原因记录在failure.log文件中,并将该文件放在failure文件夹中。 将根据为端点指定的配置参数创建失败文件夹。 管理员为端点配置设置“失败时保留”选项时,provider.file_write_results_service也会将源文件复制到失败文件夹中。 有关从故障文件夹恢复文件的信息,请参见故障点和恢复。
使用以下设置配置监视的文件夹端点。
名称: (强制)标识端点。不要包含<字符,因为它将截断Workspace中显示的名称。 如果要输入URL作为端点的名称,请确保它符合RFC1738中指定的语法规则。
描述: 端点的描述。不要包含<字符,因为它将截断Workspace中显示的描述。
路径: (必需)指定监视的文件夹位置。在群集环境中,此设置必须指向可从群集中的每台计算机访问的共享网络文件夹。
异步: 将调用类型标识为异步或同步。默认值为异步。 对于长寿命进程,建议使用异步,而对于瞬态或短寿命进程,建议使用同步。
Cron表达式: 如果必须使用cron表达式来计划监视的文件夹,请输入cron表达式。配置此设置后,将忽略重复间隔。
重复间隔: 扫描已监视文件夹以进行输入的间隔(秒)。除非启用“限制”设置,否则“重复间隔”应长于处理平均作业的时间;否则,系统可能会过载。 默认值为 5。有关其他信息,请参阅批量大小说明。
重复计数: 监视的文件夹扫描文件夹或目录的次数。值-1表示扫描不确定。 默认值为-1。
限制: 选择此选项后,将限制AEM表单在任何给定时间处理的监视文件夹作业数。最大作业数由“批大小”值确定。 (请参阅关于限制。)
用户名: (必填)从监视的文件夹调用目标服务时使用的用户名。默认值为SuperAdmin。
域名: (必填)用户的域。默认值为DefaultDom。
批量大 小:每次扫描要拾取的文件或文件夹数。用于防止系统过载;一次扫描过多文件可能会导致崩溃。 默认值为 2。
“重复间隔”和“批量大小”设置决定“监视文件夹”在每次扫描中捕获的文件数。 监视文件夹使用石英线程池扫描输入文件夹。 线程池与其他服务共享。 如果扫描间隔较小,线程将经常扫描输入文件夹。 如果文件经常被放入监视的文件夹,则扫描间隔应保持较小。 如果文件不常被删除,请使用更大的扫描间隔,以便其他服务可以使用线程。
如果丢弃的文件量很大,请使批处理大小变大。 例如,如果监视文件夹端点调用的服务每分钟可处理700个文件,并且用户以相同的速率将文件放入输入文件夹,则将“批处理大小”设置为350,将“重复间隔”设置为30秒将帮助监视文件夹的性能,而不会导致频繁扫描监视文件夹的成本。
当文件被放入监视的文件夹时,它会列表输入中的文件,如果每秒都进行扫描,则会降低性能。 增加扫描间隔可以提高性能。 如果正在删除的文件体积较小,请相应地调整“批处理大小”和“重复间隔”。 例如,如果每秒丢弃10个文件,请尝试将“重复间隔”设置为1秒,将“批处理大小”设置为10。
等待时间: 在创建文件夹或文件后扫描文件之前等待的时间(以毫秒为单位)。例如,如果等待时间为3,600,000毫秒(1小时),且文件是在一分钟前创建的,则此文件将在59分钟或更长时间后被拾取。 默认值为 0。
此设置有助于确保将文件或文件夹完全复制到输入文件夹。 例如,如果要处理一个大文件,并且该文件需要10分钟才能下载,请将等待时间设置为10*60 *1000毫秒。 如果文件未保存10分钟,则阻止监视的文件夹扫描文件。
排除文件模 式:分号; 被 监视文件夹用于确定扫描和拾取哪些文件和文件夹的模式的分隔列表。不会扫描具有此模式的任何文件或文件夹进行处理。
当输入是包含多个文件的文件夹时,此设置很有用。 文件夹的内容可以复制到一个名称由监视文件夹选取的文件夹中。 这样,监视的文件夹在将文件夹完全复制到输入文件夹之前,就无法拾取要处理的文件夹。
您可以使用文件模式排除:
具有特定文件扩展名的文件;例如,*.dat、*.xml、*.pdf。
具有特定名称的文件;例如,数据。*将排除名为data1、data2等的文件和文件夹。
名称和扩展名中具有复合表达式的文件,如以下示例所示:
有关文件模式的详细信息,请参阅关于文件模式。
包括文件模式 :(必填)分号;已 监 视文件夹用于确定扫描和拾取哪些文件夹和文件的模式的分隔列表。例如,如果“包括文件模式”为input*,则所有与input&ast匹配的文件和文件夹;被捡起来。 这包括名为input1、input2等的文件和文件夹。
默认值为*并指示所有文件和文件夹。
您可以使用文件模式包括:
具有特定文件扩展名的文件;例如,*.dat、*.xml、*.pdf。
具有特定名称的文件;例如,数据。*将包含名为data1、data2的文件和文件夹,依此类推。
名称和扩展名中具有复合表达式的文件,如以下示例所示:
有关文件模式的详细信息,请参阅关于文件模式。
结果文件 夹:存储保存结果的文件夹。如果结果未显示在此文件夹中,请检查失败文件夹。 只读文件不会被处理,并将保存在失败文件夹中。 此值可以是具有以下文件模式的绝对路径或相对路径:
例如,如果2009年7月17日晚上8点,并且您指定C:/Test/WF0/failure/%Y/%M/%D/%H/
,则结果文件夹为C:/Test/WF0/failure/2009/07/17/20
。
如果路径不是绝对的,而是相对的,则文件夹将创建在监视的文件夹内。 默认值为result/%Y/%M/%D/,它是监视文件夹内的Result文件夹。 有关文件模式的详细信息,请参阅关于文件模式。
结果文件夹的大小越小,“监视文件夹”的性能就越好。 例如,如果监视文件夹的估计负载是每小时1000个文件,请尝试类似result/%Y%M%D%H
的模式,以便每小时创建一个新的子文件夹。 如果负载较小(例如,每天1000个文件),则可使用类似result/%Y%M%D
的模式。
保留文件 夹:成功扫描和拾取文件后存储文件的位置。路径可以是绝对路径、相对路径或空目录路径。 可以使用文件模式,如结果文件夹中所述。 默认值为preseve/%Y/%M/%D/。
失败文件 夹:保存失败文件的文件夹。此位置始终相对于监视的文件夹。 可以使用文件模式,如结果文件夹中所述。
只读文件不会被处理,并将保存在失败文件夹中。
默认值为failure/%Y/%M/%D/。
失败时保留: 在无法对服务执行操作时保留输入文件。默认值为true。
覆盖重复文 件名:设置为True时,结果文件夹和保留文件夹中的文件将被覆盖。设置为“False”时,名称将使用带有数字索引后缀的文件和文件夹。 默认值为False。
清除持续时间 :(必填)当结果文件夹中的文件和文件夹早于此值时,将清除结果文件夹中的文件和文件夹。此值以天数计。 此设置有助于确保结果文件夹不变为完整文件夹。
值为-1天表示从不删除结果文件夹。 默认值为-1。
操作名称 :(必选)可分配给监视文件夹端点的操作列表。
输入参数映 射:用于配置处理服务和操作所需的输入。可用的设置取决于使用监视文件夹端点的服务。 下面是两种输入:
文字: 监视的文件夹在显示时使用在字段中输入的值。支持所有基本Java类型。 例如,如果API使用String、long、int和Boolean等输入,则字符串将转换为正确类型并调用服务。
变量: 输入的值是被监视的文件夹用来选择输入的文件模式。例如,在加密密码服务(输入文档必须为PDF文件)中,用户可以使用*.pdf作为文件模式。 监视文件夹将拾取监视文件夹中与此模式匹配的所有文件,并为每个文件调用服务。 使用变量时,所有输入文件都会转换为文档。 仅支持将文档用作输入类型的API。
输出参数映 射:用于配置服务和操作的输出。可用的设置取决于使用监视文件夹端点的服务。
监视的文件夹输出可以是单个文档、列表或文档图。 然后,这些输出文档使用在“输出参数映射”中指定的模式保存在结果文件夹中。
指定导致唯一输出文件名的名称可提高性能。 例如,考虑服务返回一个输出文档,而输出参数映射将其映射到%F.%E
(输入文件的文件名和扩展名)的情况。 在这种情况下,如果用户每分钟删除具有相同名称的文件,并将结果文件夹配置为result/%Y/%M/%D
,并且“覆盖重复文件名”设置为关闭,则“监视文件夹”将尝试解析重复文件名。 解析重复文件名的过程可能会影响性能。 在这种情况下,将“输出参数映射”更改为%F_%h_%m_%s_%l
以向名称中添加小时、分钟、秒和毫秒,或者确保删除的文件具有唯一的名称可能会提高性能。
管理员可以指定可调用服务的文件类型。 可以为每个监视的文件夹建立多个文件模式。 文件模式可以是以下文件属性之一:
具有特定文件扩展名的文件;例如,*.dat, *.xml, *.pdf,;
具有特定名称的文件;例如,数据。*
名称和扩展名中具有复合表达式的文件,如以下示例所示:
管理员可以定义输出文件夹的文件模式,以在其中存储结果。 对于输出文件夹(结果、保留和失败),管理员可以指定以下任意文件模式:
例如,结果文件夹的路径可能为C:\Adobe\Adobe_Experience_Manager_forms\BarcodedForms\%y\%m\%d
。
输出参数映射还可以指定其他模式,如:
如果输出参数映射模式以“File.separator”(即路径分隔符)结尾,则会创建一个文件夹,并将内容复制到该文件夹中。 如果模式不以“File.separator”结尾,则内容(结果文件或文件夹)将使用该名称创建。 有关输出参数映射的详细信息,请参阅监视文件夹的提示和技巧。
当为监视文件夹端点启用限制时,它会限制在任何给定时间都可以处理的监视文件夹作业数。 最大作业数由批量大小值确定,也可在监视文件夹端点中进行配置。 当达到限制限制时,将不会轮询监视文件夹输入目录中传入的文档。 文档还将保留在输入目录中,直到其他已监视的文件夹作业完成并再次尝试轮询为止。 在同步处理的情况下,在单次轮询中处理的所有作业都将计入限制,即使这些作业是在单个线程中连续处理的。
限制不随群集扩展。 启用限制后,群集作为一个整体将不会在任何给定时间处理超过批量大小中指定的作业数。 此限制在群集范围内,并非特定于群集中的每个节点。 例如,如果“批处理大小”为2,则只有一个节点处理两个作业时,才能达到限制限制,并且在完成其中一个作业之前,其他节点都不会轮询输入目录。
监视文件夹在每个重复时间间隔内扫描输入文件夹,选取批量大小中指定的文件数,并为每个文件调用目标服务。 例如,如果批处理大小为4,则监视文件夹在每次扫描时将选取4个文件,创建4个调用请求,并调用目标服务。 在完成这些请求之前,如果调用“监视文件夹”,则无论以前的四个作业是否完成,它都将再次开始四个作业。
限制可防止监视文件夹在以前的作业未完成时调用新作业。 监视的文件夹将检测正在进行的作业,并根据批处理大小减去正在进行的作业来处理新作业。 例如,在第二次调用中,如果完成的作业数仅为3,而一个作业仍在进行,则“监视文件夹”仅再调用3个作业。
“监视文件夹”可在单个节点上共服务100个文件夹。 监视文件夹的性能取决于表单服务器的性能。 对于异步调用,性能更取决于系统负载和作业管理器队列中的作业。
可通过向群集中添加节点来改进监视文件夹的性能。 监视的文件夹作业通过Quartz调度程序分布于群集节点中,如果是异步请求,则通过作业管理器服务分发。 所有作业都保留在数据库中。
监视的文件夹取决于调度程序服务以计划、取消计划和重新计划作业。 其他服务(如事件管理服务、用户管理器服务和电子邮件提供者服务)可共享调度程序服务线程池。 这会影响监视文件夹的性能。 调度程序服务线程池调整在所有开始使用它的服务时都是必需的。
在群集中,“监视文件夹”取决于Quartz调度程序和作业管理器服务,用于负载平衡和故障转移。 有关Quartz群集行为的详细信息,请参见Quartz Documentation。
“监视文件夹”在每次投票中执行以下三个主要任务:
负载平衡和故障转移行为会根据监视的文件夹是配置为同步还是异步调用而发生更改。
对于同步调用,Quartz负载平衡器决定哪个节点将获得轮询事件。 获得轮询事件的节点将执行所有任务:扫描文件夹,调用目标服务并处理结果。
对于同步调用,当一个节点发生故障时,Quartz调度程序会向其他节点发送新的轮询事件。 在失败节点上启动的调用将丢失。 有关如何恢复与失败作业关联的文件的详细信息,请参见故障点和恢复。
对于异步调用,Quartz负载平衡器决定哪个节点将获得轮询事件。 获取轮询事件的节点将扫描输入文件夹,并通过将请求置入作业管理器服务队列来调用目标服务。 作业管理器服务负载平衡器则负责决定哪个节点将处理调用请求。 即使节点A创建了调用请求,节点B也有可能最终处理该请求。 或者启动调用请求的节点也可能最终处理该请求。
对于异步调用,当一个节点发生故障时,Quartz调度程序会向其他节点发送新的轮询事件。 在失败节点上创建的调用请求将位于作业管理器服务队列中,并将发送到其他节点进行处理。 未创建调用请求的文件将保留在阶段文件夹中。 有关如何恢复与失败作业关联的文件的详细信息,请参见故障点和恢复。
在每个投票事件下,“监视文件夹”锁定输入文件夹,将与包含文件模式匹配的文件移动到舞台文件夹,然后解锁输入文件夹。 需要锁定,这样两个线程就不会选取同一组文件并处理它们两次。 随着重复间隔的减小和批量的增大,发生这种情况的可能性增加。 将文件移到舞台文件夹后,将解锁输入文件夹,以便其他线程可以扫描该文件夹。 此步骤有助于提供高吞吐量,因为在一个线程处理文件时,其他线程可以进行扫描。
将文件移到舞台文件夹后,将为每个文件创建调用请求并调用目标服务。 有时监视文件夹无法恢复舞台文件夹中的文件:
同步:如 果“监视文件夹”配置为同步调用服务,则舞台文件夹中的所有文件在舞台文件夹中仍未处理。
异步: 在这种情况下,监视文件夹依赖于作业管理器服务。如果作业管理器服务回调监视文件夹,则根据调用结果将舞台文件夹中的文件移动到保留或失败文件夹。 如果作业管理器服务不回叫监视文件夹,则这些文件在阶段文件夹中将保持未处理状态。 当作业管理器回叫时,监视文件夹未运行时,会发生这种情况。
当监视文件夹无法处理舞台文件夹中的源文件时,您可以恢复未处理的文件。
重新启动应用程序服务器或节点。
(可选)停止监视文件夹处理新的输入文件。 如果跳过此步骤,将更难确定舞台文件夹中哪些文件未处理。 要阻止监视文件夹处理新的输入文件,请执行下列任务之一:
NOMATCH
)。等到AEM表单恢复并处理所有文件。 大多数文件都应该恢复,并且所有新的输入文件都应正确处理。 等待监视文件夹恢复和处理文件的时间长短取决于要调用的操作长度和要恢复的文件数。
确定无法处理哪些文件。 如果您等了适当的时间并完成了上一步,并且舞台文件夹中仍保留未处理的文件,请转到下一步。
您可以查看舞台目录中文件的日期和时间戳。 根据文件数和正常处理时间,您可以确定哪些文件的版本足够旧,以便被视为卡住。
将未处理的文件从舞台目录复制到输入目录。
如果您阻止监视文件夹在步骤2中处理新的输入文件,请将“包括文件模式”更改为其以前的值,或重新启用您禁用的进程。
每个监视文件夹都配置了用户名和密码。 调用服务时将使用这些凭据。 监视文件夹依赖于共享文件夹受基础安全文件系统保护这一事实,因此只有被监视文件夹的所有者才能访问共享文件夹。
以下是配置监视文件夹端点时的一些提示和技巧:
如果在Windows上有一个正在处理图像文件的监视文件夹,请指定“包括文件模式”或“排除文件模式”选项的值,以防止Windows自动生成的Thumbs.db文件被监视文件夹轮询。
如果指定了cron表达式,则忽略重复间隔。 cron表达式的使用基于Quartz开源作业调度系统1.4.0版。
批处理大小是监视文件夹的每次扫描中将拾取的文件或文件夹数。 如果批处理大小设置为两个,并且监视的文件夹输入文件夹中丢弃了十个文件或文件夹,则每次扫描只会拾取两个文件或文件夹。 在下一次扫描中,将在重复间隔中指定的时间后进行,接下来的两个文件将被拾取。
对于文件模式,管理员可以指定常规表达式,并添加对通配符模式的支持以指定文件模式。 监视文件夹会修改常规表达式,以支持通配符模式,如*。*或*.pdf。 常规表达式不支持这些通配符模式。
监视文件夹会扫描输入文件夹以进行输入,在开始处理文件或文件夹之前,不知道源文件或文件夹是否已完全复制到输入文件夹。 要确保在选取文件或文件夹之前将源文件或文件夹完全复制到监视文件夹的输入文件夹,请执行以下任务:
ex*
,而包含文件模式为in*
,则“监视文件夹”将选取开始为“in”的文件,而不会选取开始为“ex”的文件。 要复制大型文件或文件夹,请首先重命名文件或文件夹,使名称开始为“ex”。 名为“ex”的文件或文件夹被完全复制到监视的文件夹后,将其重命名为“in*”。使用清除持续时间来保持结果文件夹的干净。 “监视文件夹”会清除清除持续时间中所述时间之前的所有文件。 持续时间以天为单位。
添加监视文件夹端点时,在选择操作名称后,将填充输入参数映射。 对于操作的每个输入,生成一个输入参数映射字段。 以下是输入参数映射的示例:
com.adobe.idp.Document
输入:如果服务操作的输入类型为Document
,则管理员可以将映射类型指定为Variable
。 监视文件夹将根据为输入参数指定的文件模式从监视文件夹的输入文件夹中选取输入内容。 如果管理员指定*.pdf
作为参数,将选取扩展名为。pdf的每个文件,将其转换为com.adobe.idp.Document
,并调用该服务。java.util.Map
输入:如果服务操作的输入类型为Map
,则管理员可以将映射类型指定为Variable
并输入具有类似*.pdf
的模式的映射值。 例如,服务需要两个com.adobe.idp.Document
对象的映射,这些对象表示输入文件夹中的两个文件,如1.pdf和2.pdf。 监视文件夹将创建一个以键作为文件名和值com.adobe.idp.Document
的映射。java.util.List
输入:如果服务操作具有类型列表的输入,则管理员可以将映射类型指定为Variable
并输入具有类似*.pdf
的模式的映射值。 当PDF文件被放入输入文件夹时,监视文件夹将创建表示这些文件的com.adobe.idp.Document
对象的列表并调用目标服务。java.lang.String
:管理员有两个选项。 首先,管理员可以将映射类型指定为Literal
并输入映射值作为字符串,如hello.
监视文件夹将使用字符串hello
调用服务。 其次,管理员可以将映射类型指定为Variable
,并输入具有类似*.txt
的模式的映射值。 在后一种情况下,具有。txt扩展名的文件将被读作被强制作为字符串的文档以调用服务。Literal
并提供值。 监视文件夹将调用具有指定值的服务。监视文件夹用于与文档一起使用。 支持的输出为com.adobe.idp.Document
、org.w3c.Document
、org.w3c.Node
,以及这些类型的列表和映射。 任何其他类型都会导致失败文件夹中的失败输出。
如果结果不在结果文件夹中,请验证失败文件夹以查看是否发生了故障。
在异步模式下使用时,“监视文件夹”的工作效果最佳。 在此模式下,监视文件夹将调用请求放入队列并回叫。 然后,将异步处理队列。 未设置“异步”选项时,“监视文件夹”会同步调用目标服务,进程引擎会等到通过请求完成服务并生成结果。 如果目标服务处理请求需要很长时间,则“监视文件夹”可能会出现超时错误。
创建用于导入和导出操作的监视文件夹不允许文件扩展名抽象。 当使用监视文件夹调用表单数据集成服务时,输出文件的文件扩展名类型可能与文档对象类型的预期输出格式不匹配。 例如,如果调用导出操作的监视文件夹的输入文件是包含数据的XFA表单,则输出应为XDP数据文件。 要获得具有正确文件扩展名的输出文件,可以在输出参数映射中指定它。 在此示例中,可以使用%F.xdp进行输出参数映射。
监视的文件夹可能会在输入文件被完全复制到文件夹之前对其进行处理。 在UNIX上,文件锁定不是强制的,因为它在Windows上。 因此,当文件被复制到监视文件夹时,“监视文件夹”可能会将文件移至舞台,而无需等待文件复制完成。 此行为仅导致部分输入文件被处理。 目前有两种解决办法:
解决方法1
解决方法2
如果您知道将文件复制到监视文件夹所需的最长时间,请以秒为单位指定等待时间。 然后,监视文件夹会等待指定的时间长度,然后将文件移到舞台。
这对于Windows上的文件不是问题,因为在编写一个线程时,Windows会锁定文件。 但是,这是Windows上的文件夹的问题。 对于文件夹,必须按照解决方法1中的步骤操作。
如果“监视文件夹”的“保留文件夹名称”端点属性设置为空目录路径,则暂存目录不会按应清除的方式清除。 该目录仍包含已处理的文件和临时文件夹。
对于所有服务,您应调整已监视文件夹的批处理大小和重复时间间隔,以使“已监视文件夹”拾取新文件和文件夹进行处理的速率不超过AEM表单服务器可以处理的作业速率。 实际使用的参数可能因配置的监视文件夹数、使用监视文件夹的服务以及处理器上作业的强度而异。
为在处理条码表单(小文件)时获得最佳性能,请输入10
作为“批处理大小”,输入2
作为“重复间隔”。
将许多文件放在输入文件夹中时,可能会出现名为thumbs.db的隐藏文件出错。 因此,建议将包含文件的“包括文件模式”设置为为输入变量指定的相同值(例如*.tiff
)。 这会阻止监视文件夹处理数据库文件。
批量大小值5
和重复间隔2
通常足够,因为BarcodedForms服务通常需要大约5秒来处理一个条形码。
监视的文件夹不会等到进程引擎完成作业后再选取新文件或文件夹。 它继续扫描监视的文件夹并调用目标服务。 此行为可能会使引擎过载,导致资源问题和超时。 确保使用重复间隔和批量大小来限制“监视的文件夹”输入。 如果存在更多监视文件夹,则可以增加重复间隔并减小批处理大小,或者在端点上启用限制。 有关限制的信息,请参见关于限制。
监视文件夹模拟在用户名和域名中指定的用户。 被监视的文件夹在直接调用或进程短时调用时以此用户身份调用服务。 对于长期进程,该进程通过系统上下文调用。 管理员可以为监视文件夹设置操作系统策略,以确定允许或拒绝访问哪个用户。
使用文件模式组织结果、失败和保留文件夹。 (请参阅关于文件模式。)
监视文件夹依赖Quartz调度程序扫描监视的文件夹。 石英调度程序具有可扫描它们的线程池。 如果监视文件夹的重复时间间隔非常小(< 5秒),而批处理大小较高(> 2),则可能会出现竞争情况。 当出现此情况时,两个石英线将拾取一个文件: