动态链接一对多的“OneTimeWorkRequest”对象
Chain one to many `OneTimeWorkRequest` objects dynamically
链接 WorkRequest
对象的方法有很多种。并行、顺序甚至组合多个作品。
尽管这个 API 看起来非常灵活,但我找不到实现以下任务的方法:
首先Worker
负责收集信息,在执行结束时,它输出一个应该被操作的文件名列表。
之后,我想对这些文件中的每一个进行操作。
所以我想有另一个 Worker
负责操作单个文件。但是我找不到一种方法来将每个文件名的输出从第一个 Worker
传递到多个操纵器 Worker
对象。 (每个文件应该有一个操纵器 WorkRequest
,这些 WorkRequest
个对象应该 运行 并行。
WorkRequest
如何根据其输出创建动态数量的 WorkRequest
个对象?
我不知道有什么方法可以让动态数量的 WorkRequest 入队。这个想法是您构建一个固定的 WorkRequest 链,并且可以由 WorkManager 作为一个整体进行处理(如果每个 worker 都成功)。
对于这种特殊情况,当初始 WorkRequest 成功时,我可能会尝试创建所需数量的 WorkRequest(每个文件一个)。
您可以在 Worker
中加入更多工作。因此,在第一个 Worker
结束时,您可以根据要处理的文件将其他工作人员排入队列。如果您想附加到一系列独特的作品中,您也可以选择查看 enqueueUniqueWork()
和 ExistingWorkPolicy.APPEND
。
链接 WorkRequest
对象的方法有很多种。并行、顺序甚至组合多个作品。
尽管这个 API 看起来非常灵活,但我找不到实现以下任务的方法:
首先Worker
负责收集信息,在执行结束时,它输出一个应该被操作的文件名列表。
之后,我想对这些文件中的每一个进行操作。
所以我想有另一个 Worker
负责操作单个文件。但是我找不到一种方法来将每个文件名的输出从第一个 Worker
传递到多个操纵器 Worker
对象。 (每个文件应该有一个操纵器 WorkRequest
,这些 WorkRequest
个对象应该 运行 并行。
WorkRequest
如何根据其输出创建动态数量的 WorkRequest
个对象?
我不知道有什么方法可以让动态数量的 WorkRequest 入队。这个想法是您构建一个固定的 WorkRequest 链,并且可以由 WorkManager 作为一个整体进行处理(如果每个 worker 都成功)。
对于这种特殊情况,当初始 WorkRequest 成功时,我可能会尝试创建所需数量的 WorkRequest(每个文件一个)。
您可以在 Worker
中加入更多工作。因此,在第一个 Worker
结束时,您可以根据要处理的文件将其他工作人员排入队列。如果您想附加到一系列独特的作品中,您也可以选择查看 enqueueUniqueWork()
和 ExistingWorkPolicy.APPEND
。