以下是有关优化活动性能的一般准则,包括适用于工作流的最佳实践。
本节中还提供与工作流执行相关的疑难解答指南。
JavaScript方法logInfo()是调试工作流的绝佳解决方案。 它很有用,但必须谨慎使用,特别是对于经常运行的活动:它可以使日志过载,并显着增加日志表的大小。 但您可能还需要多于logInfo()。
还提供两个其他解决方案,以帮助您:
在两次处决之间保留临时人口的结果
此选项在工作流的两个执行之间保留临时表。 它位于工作流属性的General选项卡中,可用于开发和测试以监控数据和检查结果。 您可以在开发环境中使用此选项,但绝不能在生产环境中使用它。 保留临时表可能导致数据库的大小显着增加,最终达到大小限制。 此外,这会减缓备份速度。
只保留上次执行工作流时的工作表。 以前执行中的工作表将由每天运行的cleanup工作流清除。
不得在生产工作流中选中此选项。 此选项用于分析结果,仅用于测试目的,因此只能用于开发或暂存环境。
在日志中记录SQL查询
在工作流属性的Execution选项卡中,此选项将记录该工具从不同查询生成的所有SQL活动。 这是查看平台实际执行的内容的好方法。 但是,此选项仅应在开发期间暂时使用,而不应在生产时激活。
当日志不再需要时清除它们。 工作流历史记录不会自动清除:默认情况下,所有消息都保留。 可以通过File > Actions菜单或单击列表上方工具栏中的“操作”按钮清除历史记录。 选择清除历史记录。
要了解如何清除日志,请参阅此文档。
最好不要将工作流计划为每15分钟以上运行一次,因为它可能会妨碍总体系统性能并在数据库中创建块。
避免将工作流置于暂停状态。 如果创建临时工作流,请确保它能够正确完成且不能保持paused状态。 如果暂停,则表示需要保留临时表,从而增加数据库的大小。 在工作流属性下分配工作流监管器,以在工作流失败或系统暂停时发送警报。
要避免工作流处于暂停状态:
此外,停止未使用的工作流。 继续运行的工作流会维护与数据库的连接。
在最少情况下,只使用无条件停止。 请勿定期使用此操作。 不对由工作流生成的连接执行干净关闭会影响性能。
在Workflow properties窗口中,从不检查Execute in the engine选项。 启用此选项后,工作流将优先处理,工作流引擎将停止所有其他工作流,直到完成此操作。
Adobe建议您在专用文件夹中创建工作流。
如果工作流影响整个平台(例如,清理进程),您可以考虑在内置Technical Workflows文件夹中添加子文件夹。
Adobe 建议为工作流赋予正确的名称和标签,这样工作流没有按照预期的方式执行,可轻松地找到并排除故障:填写工作流的描述字段,在其中加入执行流程的摘要,以便操作员能够轻松理解。
如果工作流是涉及多个工作流的流程的一部分,则在输入标签时可以明确;使用数字是对工作流(按标签)排序的绝佳方式。
例如:
您可以在工作流属性的Execution选项卡中配置工作流的严重性:
在创建工作流时提供此信息将帮助您了解所配置进程的严重性。
此选项对除活动工作流之外的工作流没有功能影响。
以优先级执行活动工作流(作为活动/操作的一部分创建的工作流),以防活动有多个进程应同时运行。 根据NmsOperation_LimitConcurrency选项,默认情况下,在活动中只能同时运行10个进程。 例如,如果活动包含25个工作流,则在10个进程的第一个池中执行严重性较高的工作流。
您在生产环境上运行的所有计划工作流都应受到监视,以便在出错时收到警告。
在工作流属性中,选择一个主管组(默认的Workflow supervisors或自定义组)。 确保至少有一个操作员属于此组,并设置了电子邮件。
在开始构建工作流之前,请记住定义工作流监管器。 出错时,将通过电子邮件通知他们。 有关详细信息,请参阅管理错误。
定期检查Monitoring范围以视图活动工作流的整体状态。 有关详细信息,请参阅实例监视。
Workflow HeatMap使Adobe Campaign平台管理员能够监控实例上的负载并相应地规划工作流。 有关详细信息,请参阅工作流监视。
您可以在同一工作流中复制和粘贴活动。 但是,我们不建议跨不同的工作流复制粘贴活动。 某些附加到活动(如投放和调度程序)的设置可能会在执行目标工作流时导致冲突和错误。 我们建议您重复工作流。 有关详细信息,请参阅复制工作流。
在开发工作流时,所有活动都将有一个名称,所有Adobe Campaign对象也一样。 当工具生成该名称时,我们建议您在配置时使用显式名称对其重命名。 以后执行该操作的风险在于,它可能会使用另一个以前活动的名称,用活动中断工作流。 因此,更新姓名将是一项困难的工作。
活动名称位于Advanced选项卡中。 不要将它们保留为query、query1、query11,但请为它们指定显式名称,如querySubscribedRecipients。 此名称将显示在日志中,如果适用于SQL日志,这将有助于在配置工作流时调试该工作流。
始终使用Start活动或Scheduler活动开始您的工作流。 相关时,您还可以使用External signal活动。
在构建工作流时,每个分支只使用一个Scheduler活动。 如果工作流的同一分支具有多个调度程序(相互链接),则要执行的任务数量将呈指数级增长,这将使数据库严重过载。此规则也适用于具有Scheduling & History选项卡的所有活动。 了解有关计划的详细信息。
对每个工作流使用End活动。 这样,Adobe Campaign就可以释放用于工作流内计算的临时空间。 有关详细信息,请参阅:开始和结束。
在初始化工作流活动时,您可能希望添加JavaScript。 这可以在活动的Advanced选项卡中完成。
为了更轻松地发现工作流,我们建议在多次标签的开始和结尾使用活动短划线,如下所示: — 我的标签 —
大多数时候,你都不知道信号从哪里被调用。 为避免此问题,请使用信号活动Advanced选项卡中的Comment字段来文档此活动的信号的预期来源。
不应直接更新生产工作流。 除非该过程包含使用模板工作流创建活动,否则应首先在开发环境上测试流程。 验证后,可以在生产上部署和启动工作流。
在开发或分阶环境(而非生产环境)中执行所有测试。 在这种情况下,无法确保业绩。
归档的工作流可以保存在开发平台或测试平台上的“归档”文件夹中,但生产环境应尽可能保持干净。 如果旧工作流处于非活动状态,则应从生产环境中删除它们。