android - Koltin 流 - 单个任务的异常处理
问题描述
最近在探索 Kotlin Flows 时,我尝试实现一个功能,我想在其中运行 10 个任务作为 Flows 的一部分。我无法弄清楚的一件事是如何处理异常并重试单个任务。
这是相同的示例伪代码。
listOfOperations.asFlow().map {
// Do request here (this would throw exception for some operations
}.collect {
// Do something with output
}
现在我正在寻找的是如何为可能失败的操作之一添加重试机制。而不是重新启动整个流程。
我看到retryWhen
可以用。但这最终重新启动了整个流程。
解决方案
假设listOfOperations
是一些输入数据列表......为什么不创建“子流”,使用retry
然后展平结果流?
listOf("a", "b").asFlow().map { data ->
flow {
emit(someOperation(data)
}.retry(3)
}.flattenConcat()
推荐阅读
- flask - 如何从烧瓶请求中的 url 中提取用户?
- ionic-framework - Play商店上传失败
- javascript - 如何使用节点 js 在 mongodb 中增加值
- c# - C# 在两个不同的 Windows 窗体之间使用互斥锁有条件地执行方法
- android - android回收器中的适配器未连接错误
- bash - 使用 Seq 和变量遍历列表
- vue.js - 组件中的 Vue i10n
- github - AWS CloudFormation CodePipeline:无法从 GitHub 获取存储库的内容
- wso2 - WSO2 API Manager 2.1 升级到 2.6
- android - Firebase 取消链接不会完全取消链接 Facebook 提供商