Написал многопоточный скрипт, но работает непонятно с неудачами



  • @romanbiz У меня тестовый скрипт вызова функции в 2 потока и 2 успешных выполнений, всегда выдаёт 3 результата.

    [485290703] [01:36:02] Поток №1 : Начало.
    [621883604] [01:36:02] Поток №2 : поток спарсил
    [621883604] [01:36:02] Поток №2 : поток спарсил
    [621883604] [01:36:02] Поток №3 : поток спарсил
    [381431811] [01:36:02] Поток №1 : Готово.
    

    Проект.xml



  • @Fox Извините, была опечатка, 2 потока 4 успеха.



  • У меня складывается впечатление что многопоточность это такой арт обстрел по данным, где нельзя гарантировать конечный результат? И что если я хочу обойтись без дублей, я должен либо в 1 поток делать, либо потом зачистку реализовывать? Так как если работаю в несколько потоков с ненулевым количеством неудач, не получается укладываться в ровное количество результатов, которые я хочу получить?
    В то же время если я выставляю количество неудач=0 у меня не возникает лишних результатов. Все работает как мне надо и в многопотоке. И эта логика меня ставит в тупик.



  • @romanbiz Я везде работаю с многопотоком, всё работает чётко и по замыслу. Но ни где не пользовался успешными и неудачными выполнениями. Ведь всё можно организовать в логике скрипта.

    Для вашей задачи подойдёт формула выше:

    если количество потоков больше 1, то:
    количество потоков плюс успешных выполнений минус 1.

    Выставите скрипт в 3 потока, !100! успешных выполнений и 0 неудачных. Скрипт выдаст только 3 результата.
    Как писал выше @DrPrime скорее всего 0 неудачных выполнений не предусмотрено в BAS.



  • @Fox спасибо за формулу. Буду тестировать. Ну когда я выставлял количество потоков равное количеству успехов и 0 неудач вроде нормально работало.



  • @Fox дополнение к Вашей формуле, количество успешных выполнений тоже должно быть >1.
    Так как в случае 3 потока, 1 успех, 1 неудача получается:

    [574710937] [00:12:38] Поток №4 : поток спарсил
    [574710937] [00:12:38] Поток №2 : поток спарсил
    [574710937] [00:12:38] Поток №3 : поток спарсил
    


  • @romanbiz Вообще эти огороды можно не городить, если установить количество успехов РЕСУРСА с куда сохраняются ссылки на страницы в 1. И не будет никах проблем



  • @DrPrime поясните, пожалуйста, если несложно. Не понимаю что конкретно надо сделать и как это будет работать. Заранее спасибо.



  • @DrPrime Кажется понял. Если так сделать, то получается что каждую ссылку можно использовать только 1 раз. Таким образом повторно ее нельзя будет использовать, если ее уже взял один поток.



  • @romanbiz да, именно так


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.