我开发了一个应用程序,必须下载非常大的文件,平均100 MB.一切正常,但有些时候出于正常原因,例如移动连接在几秒钟内降至0或无线待机,在服务中运行的下载(如市场更新)可能会中断或中断.有一种方法可以在出错时恢复,也许有一个http范围?如果有人已经遇到问题,那么有一个工作代码示例会很好.:-) 谢谢
我目前的情况:
我有10000条记录作为批量输入.根据我的理解,批处理仅用于逐个记录处理.因此,我在批处理步骤中使用dataweave组件转换每个记录(注意:我没有使用任何批处理提交)并将每个记录写入文件.进行逐条记录处理的原因在于,在任何特定记录中都存在无效数据,只有该特定记录失败,其余部分将被正确处理.
但在我看到的许多博客中,他们使用带有dataweave组件的batchcommit(带流).因此,根据我的理解,所有记录将一次性提供给数据编织,如果一条记录包含无效数据,则所有10000条记录都将失败(在数据编织时).然后,逐个记录处理的点丢失.以上假设是正确的还是我想错了?
这就是我不使用批量提交的原因.
现在,正如我所说,我将每条记录发送到一个文件.实际上,我确实需要将每条记录发送到5个不同的CSV文件.所以,目前我在BatchStep中使用Scatter-Gather组件将它发送到五个不同的路由.
因为,你可以看到图像.输入阶段提供10000条记录的集合.每条记录将使用Scatter-Gather发送到5条路线.
是,我使用的方法是好的,或任何更好的设计可以遵循?
此外,我已经创建了第二个批处理步骤,仅捕获FAILEDRECORDS.但是,使用当前的设计,我无法捕获失败的记录.