Динамически цепочка один ко многим объектам `OneTimeWorkRequest` - PullRequest
0 голосов
/ 27 ноября 2018

Есть много способов связать WorkRequest объекты.Параллельно, последовательно и даже объединяя несколько работ.

Несмотря на то, что этот API кажется очень гибким, я не смог найти способ решить следующую задачу:

Первый Worker несет ответственностьчтобы собрать информацию, в конце своего выполнения он выводит список имен файлов, которыми следует манипулировать.После этого я хотел бы сделать манипуляции с каждым из этих файлов.Поэтому я хотел бы представить еще один Worker, который отвечает за манипулирование одним файлом.Но я не смог найти способ передать вывод каждого имени файла из первых Worker в несколько объектов-манипуляторов Worker.(Должен быть один манипулятор WorkRequest для каждого из файлов, и эти WorkRequest объекты должны работать параллельно).

Как можно WorkRequest создать динамическое число WorkRequest объектов на основе еговыход

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Вы можете поставить больше работы изнутри Worker.Таким образом, в конце первого Worker вы можете ставить в очередь других рабочих в зависимости от файлов, которые вы хотите обработать.Вы также можете посмотреть на enqueueUniqueWork() и ExistingWorkPolicy.APPEND, если хотите добавить цепочку уникальных работ.

0 голосов
/ 27 ноября 2018

Я не знаю ни одного способа поставить в очередь динамический номер WorkRequest.Идея состоит в том, что вы создаете цепочку WorkRequests, которая является фиксированной и может обрабатываться WorkManager в целом (если каждый работник добивается успеха).

В этом конкретном случае я, вероятно, попытаюсь создать необходимое количествоWorkRequests (по одному на файл), когда начальный WorkRequest завершается успешно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...