我正在测试一个新的SWF工作流,并且有一些活动可以使RESTful调出另一个服务。问题是,通过日志记录我可以看到完成实际通话所需的时间不到一秒钟,但是活动始终以SWF(5分钟的START_TO_CLOSE)超时。更具体地讲,RESTful调用是列表调用,当我将批处理大小限制为一个较小的数字时,活动将完成并非常快速地进行。但是在某个看似随意的阈值下,它完全阻塞了。
有人对此有任何见识吗?我读过SWF调用的大小限制为1 MB,有人知道如何找到我的工作人员试图通过SWF的数据大小吗?
答案 0 :(得分:1)
经过一些远程调试后,结果表明任务的响应太大,活动无提示地失败。当框架尝试将响应报告给SWF,并且SDK调用RespondActivityTaskCompleted时,将发生失败。该API对内部result
参数有长度限制:
长度限制:最大长度为32768。
这是一个验证错误,会引发未捕获的异常,并且会在内部吞下直到活动超时。
答案 1 :(得分:1)
我不建议使用活动输入和输出参数来传递大型数据集。 SWF是一种编排技术,而不是通过数据的数据。标准的解决方法是:
顺便说一句。您是否签出了Cadence,它是SWF的开源版本,具有更好的客户端库?