户外活动 mail.execute 花费太多时间

Alfresco activiti mail.execute taking too much time

我们正在处理与从作为用户任务的一部分嵌入到 Alfresco 中的 activiti 工作流引擎发送邮件相关的问题。当 reviewerGroup 中有大约 20 个用户时(请参阅以下代码块)系统花费了太多时间,用户必须在 UI 中等待大约 2 到 3 分钟,直到邮件全部发送完毕。如果花费超过 2 分钟,用户将在 UI 中收到超时错误,并在 Alfresco 控制台中抛出异常。我包括将邮件发送给一组用户的代码块。 reviewerGroup 包含一组用户。

mail.parameters.template_model = templateModel;
mail.parameters.to_many = reviewerGroup;
mail.parameters.subject = "Your group has content to review in "+sourceEnv;
mail.parameters.from = people.getPerson("alfresco_noreply").properties.email;
mail.parameters.template = emailReviewTemplate;
mail.execute(bpm_package);

任何人都可以建议我们可以做哪些优化来改进或修复此工作流程吗?

简单的解决方法是异步发送邮件,以便立即调用操作 returns 并在另一个线程中发送。唯一的缺点是,如果发送失败,调用代码将不会得到通知(尽管您可以根据需要附加一个用于失败处理的补偿操作)

为此,只需更改行:

 mail.execute(bpm_package);

对于:

mail.executeAsynchronously(bpm_package);

有关此内容的更多信息,请参阅 Alfresco JavaScript docs