有许多方法可以链接WorkRequest
对象。并行,因此甚至可以合并多个作品。
尽管该API似乎非常灵活,但我找不到实现以下任务的方法:
第一个Worker
负责收集信息,在执行结束时,它会输出一个应操作的文件名列表。
之后,我想对每个文件进行操作。
因此,我可以想象有另一个Worker
负责处理单个文件。但是我找不到一种方法来将每个文件名的输出从第一个Worker
流到多个操纵器Worker
对象。 (每个文件应该有一个操纵器WorkRequest
,并且这些WorkRequest
对象应该并行运行)。
一个WorkRequest
如何基于其输出创建动态数量的WorkRequest
个对象?
答案 0 :(得分:1)
我不知道有什么方法可以使动态数量的WorkRequest入队。这个想法是,您构建一个固定的WorkRequests链,并且可以由WorkManager整体进行处理(如果每个工作人员都成功的话)。
对于这种特殊情况,我可能会尝试在初始WorkRequest成功后创建所需数量的WorkRequest(每个文件一个)。
答案 1 :(得分:0)
您可以从Worker
内部进行更多工作。因此,在第一个Worker
的结尾,您可以根据要处理的文件来排队其他工作线程。如果您想附加到一系列独特的作品中,也可以选择查看enqueueUniqueWork()
和ExistingWorkPolicy.APPEND
。