Не записывает в ресурс при многопотоке



  • В режиме отладки все прекрасно работает, как только запускаю многопоток, то запись не происходит. Вот сам скрипт
    0_1513877383203_parserYoutube.xml



  • @bms.java Это скорее всего баг. Про который нужно сообщить, так как значения ресурсов не передаются в функцию, только через переменные. В простую функцию это возможно сделать - присвоить значение ресурса, какой-то переменной. А вот для многопоточной, я думаю, что никак. В данном Вашем случае проблема возникает с виртуальным ресурсом (urls). Хотя разници нет или виртуальный или статический. Когда скрипт заходит в функцию yadisk_url он прекращает свою работу (так как все данные для urls были отработаны....дальше он не идет)



  • Я таким же образом пытался передать значения ресурсов в функцию через выполнить код....методом проб и ошибок и подсказок на форуме определили, что не передается. Только через переменные.



  • @seedgg Спасибо за развернутый ответ



  • @seedgg у Вас был другой случай, ресурс передавался как аргумент. здесь же ресурс просто используется в функции.
    @bms-java Пробежался по коду, все должно отрабатывать. Запустить нет времени в многопотоке, попробуйте добавить логирование перед добавлением в ресурс, возможно просто нет ссылок



  • @DrPrime я понимаю, что у меня была другая ситуация. Данный скрипт я проверял по всяким параметрам кучу раз, так как имел подобную ситуацию. Не передается ресурс(данные) в функцию. Если даже в мейне после добавления данных в ресурс вывести его в лог методом while({{ресурс|notreuse}}) то будет только работать в режиме отладки, в режиме запуска нет. Возможно даже не проблема в передаче в функцию, а в самих ресурсах. Если будет время потестите, я больше чем уверен что ничего не получится...если конечно не пирменить какой-то крутой костыль.



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



  • @bms.java

    как только запускаю многопоток, то запись не происходит

    Посмотрите внимательно, как грузится эта страница. Сначала происходит загрузка пустой страницы(без видео).
    На этом этапе завершается действие Загрузка.
    Потом грузятся видео и на это тратится время.
    У вас скрипт сразу же продолжает работу, получает код пустой страницы(без видео) и парсит все это в пустой список.
    Исправить это можно поставив действие Ждать полной загрузки страницы после действия Загрузить и после каждого клика на прокрутку.

    В режиме записи все работает, потому что там тратится время нужно для обеспечения возможности отладки.



  • @seedgg

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

    Ресурсы передаются, этот видно на видео про выполнение функции в несколько потоков и даже на этом проекте после правок.



  • @seedgg said in Не записывает в ресурс при многопотоке:

    Я таким же образом пытался передать значения ресурсов в функцию через выполнить код....методом проб и ошибок и подсказок на форуме определили, что не передается. Только через переменные.

    Ресурсы и передаются в функции запущенные в несколько потоков, если у вас что-то не работает, прикрепите проект.



  • @support Теперь уже понял в чем была ошибка. Спасибо. Да действительно все работает, не мог понять почему ресурс был пустой. Думал что не передается в функцию.



  • @seedgg said in Не записывает в ресурс при многопотоке:

    Я таким же образом пытался передать значения ресурсов в функцию через выполнить код....методом проб и ошибок и подсказок на форуме определили, что не передается. Только через переменные.

    передать значение ресурсов в выполнить код можно, в этом топике приводил пример как это сделат


Log in to reply