Всем привет!
Написал код, изначально последовательный, без какой либо параллельности.
def getInfo(url):
response = requests.get(url)
needToSend = true # В зависимости от логики описанной где-то выше ставим флаг
if needToSend and url not in sentLinks: # Если надо отправить и еще не отправляли
msg = ... # Формируем сообщение
bot.send_message(12345678, msg) # Шлём в телеграм
sentLinks.append(url) # И сохраняем урл чтобы на следующем круге не писать его в телеграм снова
Допустим есть 300 ссылок. В цикле вызываем нашу
getInfo и передаем одну ссылку.
Доходим до конца списка и запускаем по новой скрипт (
while true: getInfo)
Так получилось что количество ссылок возросло, и скрипт начал очень медленно работать.
Пришлось использовать multiprocessing Pool. Использую 20 потоков.
Столкнулся с проблемой что у каждого процесса свой
sentLinks. В итоге в телеграм приходят 20 одинаковых сообщений с каждого потока.
Подскажите, пожалуйста, как решить проблему?
Возможно использовать глобальную переменную-список в которую будем записывать урл, уже отправленный в телеграм?