Добрый день. Вводные такие: есть списки строк (global_lst и llist), скрипт идет по global_lst и применяет одну из строк llist к одной строке global_lst, причем использоваться строки llist могут только определенное количество раз в час (count). Используется ThreadPool(thread). После исчерпания счетчика скрипт засыпает на оставшееся от часа время, после пробуждения продолжает обход global_lst, а счетчик count для llist обнуляется. Получается, что если len(llist) == 3 и count == 5, то за час скрипт должен отработать 3 х 5 = 15 строк из global_lst, т.е. каждая строка из llist отработает за час 5 раз.
Завел ddict, в котором ключ - это строка из llist, а значение - это count. При использовании строки из llist счетчик count += 1.
Но всё упирается в количество thread. Если len(llist) * count == thread, то работает правильно. Но если len(llist) * count != thread, то значения в словаре ddict будут больше по факту, чем нужно. Допустим, если thread = 10, len(llist) = 3 и count = 5, то скрипт останавливается, когда ddict = {element1: 7, element2: 6, element3: 7}, а должен останавливаться, когда {element1: 5, element2: 5, element3: 5}.
Подскажите, пожалуйста, как можно вовремя остановить скрипт.
Завел ddict, в котором ключ - это строка из llist, а значение - это count. При использовании строки из llist счетчик count += 1.
Но всё упирается в количество thread. Если len(llist) * count == thread, то работает правильно. Но если len(llist) * count != thread, то значения в словаре ddict будут больше по факту, чем нужно. Допустим, если thread = 10, len(llist) = 3 и count = 5, то скрипт останавливается, когда ddict = {element1: 7, element2: 6, element3: 7}, а должен останавливаться, когда {element1: 5, element2: 5, element3: 5}.
Подскажите, пожалуйста, как можно вовремя остановить скрипт.