Groovy XmlSlurper с параллельной работой

Я анализирую некоторые RSS-канал RSS и необходимо расширить некоторые URL-адреса в поле описания.

Теперь мой код написан как

items.collect {
    it.description = FullText.expand(it.description)
    return it
}

В этом случае URL-адреса внутри запрашиваются один за другим, что делает его процесс очень медленным.

Поэтому я хочу сделать что-то вроде

items.collectParallel {
    it.description = FullText.expand(it.description)
    return it
}

Но вместо этого я получаю сообщение об ошибке:

groovy.lang.MissingMethodException: No signature of method: groovy.util.slurpersupport.NodeChildren.collectParallel() is applicable for argument types

1 ответ

Решение

items.collectParallel блок должен быть окружен GParsPool.withPool блок, чтобы иметь collectParallel и другие доступные методы GPars, такие как:

import static groovyx.gpars.GParsPool.withPool

// ...

withPool {
    items.collectParallel {
        it.description = FullText.expand(it.description)
        return it
    }
}
Другие вопросы по тегам