提问者:小点点

执行花费太多时间


我们正在处理与从Activiti工作流引擎发送邮件相关的问题,作为用户任务的一部分嵌入在AlFresco中。当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);

有人能建议我们可以做些什么优化来改进或修复这个工作流程吗?


共1个答案

匿名用户

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

要做到这一点,只需更改行:

 mail.execute(bpm_package);

为:

mail.executeAsynchronously(bpm_package);

有关此内容的更多信息,请参阅AlFresco JavaScript文档