Для этого, при выборе ресурса, нужно убрать вот этот чекбокс:
image.png
Видео:
321.webm
У меня проблема: потоки забирают данные из ресурса НЕ моментально!
Те предположим реальная задача: необходимо чтобы часть потоков решали капчу и добавляли в ресурс ключ капчи.
Остальные потоки этот ключ брали и работали с ним.
Первый вариант ставим галочку ждать ресурс:

исходник testres1.xml
Задержка ~5сек потоки ждут %)
Окау...второй вариант не ставим галочку "Ждать ресурс" зацикливаем onlyfail
testres2.xml
Как бы результат особо не меняется. Задержка ~5сек.
Как сделать, чтобы как только добавился ресурс, он был сразу схвачен любым потоком?
Создай ресурс "из файла" и укажи здесь 0, выбери просто пустой файл.

В него уже добавляй ключи.
@Valerax
[117193171] [16:17:23] Поток №100 : add 8045
[117193171] [16:17:24] Поток №45 : add 9235
[117193171] [16:17:24] Поток №81 : add 8764
[117193171] [16:17:24] Поток №90 : add 8952
[117193171] [16:17:24] Поток №72 : add 9238
[117193171] [16:17:24] Поток №94 : add 8983
[192183382] [16:17:24] Поток №1 : Теперь я взял 4394 за 5сек
[192183382] [16:17:24] Поток №8 : Теперь я взял 4397 за 5сек
[192183382] [16:17:24] Поток №9 : Теперь я взял 4644 за 5сек
[192183382] [16:17:24] Поток №10 : Теперь я взял 4669 за 5сек
[192183382] [16:17:24] Поток №11 : Теперь я взял 4718 за 5сек
Первые пару строк берутся за 0сек, остальные ~5сек и более.
@000 Сами Потоки уже давненько сделано запуск с Задержкой и вот видимо чем больше их и на остальных уже просто Внутренняя их задержка.
Не помню с какой версии БАС но есть такое и описывали для чего мол это.
Скорей всего вот оно и есть :)
Хотя может и ещё кто что подскажет.
Тему поднял вам :)
@000 said in Данные из ресурса берутся с задержкой:
Есть у кого идеи?
Сейчас буду разбираться. Временное решение - используйте глобальную переменную. Проверил, время между записью одним потоком и получением данных другим из глобальной переменной занимает не больше 10мс при 100 потоков
Скрипт для проверки: 3162.xml

Хмм, сейчас создал свой скрипт по вашей задаче "необходимо чтобы часть потоков решали капчу и добавляли в ресурс ключ капчи.
Остальные потоки этот ключ брали и работали с ним". Локальный ресурс заполняется первым потоком, остальные потоки выводят его в лог и это происходит мгновенно, разница во времени перед взятием ресурса и после 0-1мс

Переделал скрипт, добавил ситуацию, когда элементов в ресурсе долго нет, в результате получилась задержка в 5 секунд, иногда даже 10 секунд

Скрипт для проверки: 3164.xml
Время ожидания получения данных из ресурса кратно 5 секундам, значит это прописанное время ожидания в цикле проверки доступности данных ресурса. Посмотрел js код получения ресурса, в нём нет циклов и ожидания, значит оно на стороне C++, а это значит что просто так эту логику не исправить. Найдя и исправив нужный параметр на C++ нужно будет собирать отдельный билд и работать с ним..
@Fox
Большое спасибо за информацию.
Я думал где-то мой косяк...
5сек довольно существенно(( особенно если задача другая:
"Запись к врачу": 100/1000 потоков проверяют календарь.
5потоков ждут когда в календарь добавятся даты и регистрируют клиента.
Правда тут с глобалкой можно обойтись.
@000 said in Данные из ресурса берутся с задержкой:
@Fox
Большое спасибо за информацию.
Я думал где-то мой косяк...5сек довольно существенно(( особенно если задача другая:
"Запись к врачу": 100/1000 потоков проверяют календарь.
5потоков ждут когда в календарь добавятся даты и регистрируют клиента.
Правда тут с глобалкой можно обойтись.
Оказалось, косяк именно в логике, когда поток получил строку, она не будет удалена из ресурса пока используется в этом потоке. И эта строка будет удалена только когда получена следующая. Следовательно другие потоки могут ожидать, что когда строка перестанет использоваться, она достанется им. Поэтому будут ожидать эту строку. Это можно исправить если вызвать "Удалить текущий элемент"
Тестовый скрипт: 3165.xml
Время получения строки 0-1мс:
