Несмотря на ожидания, реализовать долгожданную многопоточность оказалось, хоть и муторно, но не невозможно. Интернет был не особо щедр на предоставление нужной информации по грамотной реализации многопоточности в Python, поэтому пришлось потратить время на то, чтобы досконально отследить, какой поток чем занимается, и где между ними могут протекать и перемешиваться данные. Ведь с точки зрения ОД, все потоки должны были представлять полностью разных изолированных пользователей со своими наборами индивидуальных параметров (cookie, user agent, прокси), но с общей очередью забора свежих пользователей и единым списком отработанных Одноклассников.
Достигнутый результат даровал мне потенциал колоссальной мощности – теперь на своём компьютере с совсем невыдающимися характеристиками я легко мог запускать несколько десятков потоков. Максимальным числом работающих параллельно экземпляров было 70, в основном же их количество держалось в районе 30–50.
Проблема с участившимися удалениями групп была решена полной автоматизацией их создания и подготовки – скрипт сам создавал группу, выставлял нужные настройки, загружал аватарку, прописывал тексты с заданными параметрами рандомизации и размещал нужным образом ссылку. Когда группа удалялась, софт фиксировал это событие, останавливал потоки, создавал новую группу и перезапускался. Всё работало на автопилоте. Таким образом, группы из штучного товара ручной работы превратились в создаваемый на ходу расходный материал.
Программный комплекс рос не по дням, а по часам – из скромного скрипта инвайтер превратился в большой полнофункциональный многопоточный комбайн со сложной логикой. Объём кода перевалил за 1000 строк. Теперь это была уже не просто забавная игрушка, а полноценное орудие массового поражения. И с каждым днём оно становилось надёжнее – все нестандартные и неожиданные ситуации записывались и сохранялись, чтобы позже я мог добавить в код конкретные инструкции на случай их повторения.
В квартиру было проведено два дублирующих друг друга интернет-провайдера, через грязные маленькие серые провода которых десятки тысяч рублей ежедневно закачивались в мой компьютер.
Отключение электричества, к счастью, было событием редким, а с его кратковременными перебоями справлялся источник бесперебойного питания.
На случай падения софта или наступления каких-то критических и требующих моего немедленного внимания событий в скрипте было реализовано смс-информирование. Теперь, как только что-то шло не так, я тут же получал смс на специально выделенный для этого дела старый телефон, который всегда и везде был со мной.
Молчание этого телефона буквально являлось аналогом настоящего золота.
На заре своих интернет-заработков одним зимним вечером, уже при свете ночи после обычного рабочего дня в офисе я шёл домой мимо пустой автобусной остановки. Звук телефона оповестил о прибытии романтичного супружеского сообщения – списка продуктов для покупки в магазине по пути. Оценив пустоту своего бумажника, я ответил, что с удовлетворением просьбы придётся немного повременить.
Неприятная привычка сутулиться и смотреть во время ходьбы себе под ноги на этот раз приятно удивила – на тротуаре в снегу я разглядел фигуру Петра Первого на фоне 500-рублёвой купюры. Не растерявшись, я быстро сделал вид, что у меня на сапоге развязались шнурки, присел и забрал бесхозную бумажку. Подняв взгляд, я удивился ещё больше – на расстоянии метра от Петра Великого в снегу подмерзали его исторические коллеги, итоговой суммой на, ни много ни мало, 5000 рублей.
Собрав трясущейся от волнения рукой хрустящие бумажки, я оглянулся и как ни в чём ни бывало отправился к дому в обходном направлении. По пути зашёл в магазин и купил продукты по списку. Действия кассира развеяли сомнения в подлинности купюр.
Надо сказать, что это была самая крупная находка денежных средств в моей жизни. Радость от неё была намного большей по сравнению с предыдущей, когда мне посчастливилось найти вмерзшую в лёд лужи пятирублевую монету на школьном дворе своей небогатой юности.
А на следующий день мне позвонили со скрытого номера. Голос в трубке представился лейтенантом Федеральной службы безопасности и вежливо поинтересовался, не желаю ли я сегодня вечером после работы заглянуть к ним в гости на дружескую беседу. Я уже был готов услышать фразу «Мальчик, верни деньги», однако мои робкие попытки узнать тему грядущей встречи остались корректно неудовлетворенными – уж кто-кто, а они умеют это делать.
Читать дальше