robisho
Подскажите, пожалуйста, как это можно осуществить?
Можно сделать по принципу, который есть у браузеров и программ для закачки. Когда она закачивает, она регистрирует все закачанные части. При её остановке остаются эти файлы, в которых записано то последнее, что закачалось. При новом запуске она ищет эти файлы, в которых записано, что там было до этого запуска, и по ним действует дальше, так же их меняя.
robisho
Нужно при остановке скрипта дать функции парсинга/smtp завершиться и остановиться на выдаче очередного url/email
При сигнале остановки программа должна доделать задачу и выйти из-за того, что был получен этот сигнал остановки. Ну, ты получаешь сигнал, устанавливаешь флажок, что был получен сигнал, а в конце цикла этот флажок проверяется.
Я такой закачник делал, я очень много накачал им в итоге. У него в текстовый файл можно было занести сотню ссылок и он помечал каждую (закачивалась она или не закачивалась), всегда можно было залезть в этот файл и пометить какую-нибудь закачанную ссылку, что она не закачана, и она тогда по новой качалась. При этом при закачке эти недокачанные файлы сохранялись под специальными именами на основе md5-хешей, чтобы они все были уникальными, а после закачки этих файлов, которая могла быть продолжена через несколько дней, через неделю, через месяц, эти хеши срезались просто и в конечных именах их не было уже. То есть они ставились автоматически только на то время, пока файл скачался не полностью, а потом так же автоматически убирались, когда он был докачан полностью. Интересно это всё было, и оно работало как часы. Действительно, можно было десятки фильмов тяжёлых качать одновременно, сериалы там всякие с кучей серий в хорошем качестве, и они не перемешивались вообще никак, а качать я там мог их целую неделю или даже больше. Вот эти хеши давали возможность не беспокоиться за совпадающие имена, которые там иногда появлялись у разных фильмов и серий.