Как реализовать многопоточность в Groovy? - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу создать 10 миллионов клиентов для тестирования производительности.Я запускаю простой скрипт для создания клиента с только обязательными атрибутами.Затем я запускаю скрипт внутри цикла.
Как улучшить производительность этого скрипта groovy?
Я не могу найти соответствующие параметры многопоточности, доступные в импорте impex.

Есть ли лучший способ создать 10 миллионов клиентов в Hybris?

Редактировать 1:

Пример скрипта Groovy для генерации клиентов с разными идентификаторами.

    import com.google.common.collect.ImmutableSet
    import de.hybris.platform.core.model.user.AddressModel
    import de.hybris.platform.core.model.user.CustomerModel

    //Setting only mandatory attributes
    for(int i=0; i<100000; i++) {
        customerModel = new CustomerModel()
        id = new Random().nextInt(100000000)
        uid = 'TestCustomer_'+id
        customerModel.setUid(uid)
        name = 'Test Customer Name_'+id
        customerModel.setName(name)

        addressModel = new AddressModel()
        addressModel.setOwner(customerModel)
        customerModel.setDefaultPaymentAddress(addressModel)
        customerModel.setDefaultShipmentAddress(addressModel)

        try{
        modelService.save(customerModel)
        }catch(Exception e){
        println('Creation of customer with id = '+uid+' and amway account = '+code+' failed with error : '+e.getMessage())
        }
    }

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Я бы сказал, что логичный ответ - использовать файлы Impex. Это позволяет создавать объем и поддерживает многопоточность: https://help.hybris.com/1811/hcd/44f79c4e604a4bff8456a852e617d261.html

В основном вы можете настроить количество рабочих или потоков:

impex.import.workers=4

Вы будете нести ответственность за преобразование вашего формата ввода в * .csv или * .impex

дополнение: Что касается скрипта Groovy, вы можете установить uid и имя с помощью impex, только вы должны заранее указать случайные числа. Вы можете сделать это в Excel или на некотором языке сценариев.

Вы можете даже сделать это в самом impex с помощью выполнения кода.

Но если вам просто нужно много случайных клиентов: вы также можете просто запустить 10 окон браузера с помощью / hac и запустить скрипт десять раз.

0 голосов
/ 10 апреля 2019

Я создал несколько ScriptingJob с помощью приведенного выше groovy сценария и прикрепил их к 30 различным Cronjobs.Выполнение всех из них параллельно достигло того же результата.

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