Могут ли несколько виртуальных работников использовать одну коллекцию?(BluePrism) - PullRequest
0 голосов
/ 29 декабря 2018

Я работаю над проблемой, когда мне нужно записать данные из CSV-файла в коллекцию.Пример: у меня есть CSV-файл с 20 элементами.Эти элементы добавляются в очередь.Каждый раз, когда дело из очереди обрабатывается, я записываю номер предмета в коллекцию.В конце я конвертирую коллекцию в формат CSV.Это прекрасно работает с 1 виртуальным работником.Тем не менее, когда я использую несколько рабочих, они записывают только номер элемента, который они обрабатывают, в коллекцию, поэтому в коллекции нет номеров элементов, которые были обработаны другим виртуальным сотрудником.

Существует ли способ для нескольких работников совместно использовать коллекцию, чтобы мне не пришлось терять какую-либо информацию перед ее преобразованием в файл CSV?По сути, я хочу, чтобы все предметы были собраны в коллекцию независимо от того, кто из них работал над ней.

Заранее спасибо.Дайте мне знать, если вам требуется дополнительная информация по этому вопросу.

1 Ответ

0 голосов
/ 31 декабря 2018

Насколько я знаю, больше нескольких пользователей не могут получить доступ к одной и той же коллекции во время выполнения.Однако вы можете попробовать другие подходы:

  1. У вас также есть номер элемента в исходном файле CSV?Если это так, то просто добавьте номер элемента в данные очереди при добавлении элементов в очередь и сделайте так, чтобы последний рабочий ресурс (последний обрабатывающий последний элемент обрабатывал) проходил по обработанным элементам в этом пакете (вы можете использовать теги для различения пакетов работы) изатем передать данные в коллекцию.

Если вы получаете номер элемента во время его обработки, просто добавьте его в данные очереди после обработки, а затем выполните цикл в очереди после обработки всего пакета, как описано выше.

Данные очереди хранятся в очереди до тех пор, пока вы не удалите их вручную, в то время как данные коллекции удаляются после завершения сеанса, поэтому вы сможете получать данные очереди в любое время, что, на мой взгляд, является преимуществом.

Вы можете добавить данные отдельного элемента в файл CSV непосредственно после обработки каждого элемента.Вам необходимо добавить некоторую логику, чтобы ресурс получал блокировку перед попыткой записи данных в файл, чтобы избежать возможных исключений, когда 2 или более ресурсов пытаются получить доступ к файлу одновременно.

Надеемсяэто помогает.

...