WorkManager запускает Worker только один раз

Я знаю, что это старо, но добавление для тех, кто искал меня. Создайте фрейм данных в pandas, df в этом коде

ip_addresses = df.source_ip.unique()
ip_dict = dict(zip(ip_addresses, range(len(ip_addresses))))

. Это даст вам карту словарей ip-адресов без необходимости ее записи.

0
задан Lemberg 13 July 2018 в 21:26
поделиться

1 ответ

Оказалось, что я должен создавать новые OneTimeWorkRequest.Builder каждый раз, когда хочу поставить новую задачу в очередь. Кажется неправильным для меня, я использовал тот же подход с Firebase JobDispatcher, и он работал как шарм. Я думаю, что это из-за этого кода в инициализации конструктора:

public Builder(@NonNull Class<? extends Worker> workerClass) {
        mId = UUID.randomUUID();
        mWorkSpec = new WorkSpec(mId.toString(), workerClass.getName());
        addTag(workerClass.getName());
    }

mId создан здесь, и он остается тем же самым для одного и того же экземпляра строителя. По-моему, он должен быть сгенерирован при вызове build()

0
ответ дан Lemberg 17 August 2018 в 12:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: