Посоветуйте демона

Статус
В этой теме нельзя размещать новые ответы.

KillDead

Хранитель порядка
Регистрация
11 Авг 2006
Сообщения
894
Реакции
579
В общем пишу авторегер, разбил регистрацию на 3 этапа –
1- Регистрация
2- Получение письма
3- Активация аккаунта
Запускать всё по очереди- не лучшая идея. Так что думаю в сторону Демона, который запустит эти 3 скрипта одновременно, ну и на главной странице будет выводить информацию о ходе работы и управлять запуском и остановкой скриптов.
Посоветуйте демона, помню, натыкался как раз на довольно большой класс, в котором была связка с ajax. Вроде именно то, что нужно, но название забыл напроч.
 
Зачем такой изврат !?
Сколько делал регеров всегда шол по такой цепочке:

PHP:
$ns // ключ так сказать потока.
// Нужно для того чтобы капчи сохронялись под уником и печеньки.
while(true)
{
// Регимся.
// Если не зарегились (капча неверная проксик умер и т.п.) continue;

// Активация  (получения письма распарска активация) если баг то continue;
// Запись данных акка.
// Очистка файлов потока (капча печеньки).
if (is_file('stop_'$ns)) exit('Стапонули насильно.');
}

Вроде ничего не забыл...
Все логируется сразу и в файл и в бравзер.
Далее к 1 скрипту оброщяешся столько сколько нужно потоков.
При работе потока хорошо постоянно файл переписывать в temp к примеру дабы видеть отвалившиеся потоки и прослеживать остановку.
Как то так )
Не знаю... Всегда обходился 1 файлом для запуска без всяких демонов.
PS. Про мульти курл знаю отстаньте ! А то щяс налетите что мол глупо так многопоточность делать - нехера совсем не глупо ! ИМХО
 
От этого варианта ушёл и приходить снова к нему- не хочу. Да, для регеров\спамилок линейное программирование оч подходит- не нужны сложные перенаправления, переопределения, наследование и тд. И намного проще и, следовательно, надёжнее- вариант, что будет какая нить ошибка меньше, чем когда полно сложных классов. И мультикурл не могу назвать оч хорошей идеей- глючит периодически и создаёт иллюзию нагромождённости.
НО, когда писал регеры, часто наступал на одни и те же грабли. Хотя опыт у меня не богатый да и кодераст я хреновый. Ведь что предоставляет из себя скрипт- это примерно блоки: «подготовка»-«парсинг»-«капча»-«пост»…. И часто я не отделят их, кроме как комментарием, да и то не всегда, так что всё писалось в кучу, при больших объёмах трудно было что-то понять. И если требуется написать что-то большее чем просторегер- напр. создание доров на различных хостингах, то это нужно думать, как лучше.

Так что решил написать класс, в основном основываясь на нужды регеров. Долго шёл, думая что нужно, перепробовал кучу говноклассов. Естественно с хорошими наработками никто не делился. Оч. понравилось такое,
PHP:
$multicurl->parse1()->post1()->parse2()->post2();
Оч. наглядно и понятно что за чем следует. Но, кода не было, и я не понимал, если, к примеру, нужно идти по другой цепочке, в зависимости от результата, то что ж делать?
Так что создал такой концепт- каждый скрипт (не обязательно регер, может парсер, спамер…) представляет из себя отдельный класс. Каждая функция возвращает массив-задание, в котором указана следующая функция, которой будет передан результат. Если возвращён массив в котором массивов заданий несколько - то, класс копируется и создаётся ещё N потоков. Для мультикурла это вообще идеальный вариант - просто создав кучю объектов, не надо заботься о всяких flock’ах и не боятся перепутать данные, которые мы отправляли вначале и получили в конце. Всё наглядно и более просто- функция для подготовки данных, функця для парсинга1, для отправки пост данных2, куча простых функций которые обрабатывают результат. Так что не надо искать по всему коду, где результат записывается в базу и пытаться найти переменные, которые в базу попадают, нужно просто найти функцию save(), и при желании переопределить её.

Для наблюдения за отдельным потоком, долго думал, но остановился пока на обычном js- формируется таблица, в которой каждая строка- один поток. И в классе идёт печать js кода <script>modify(id, ‘Классное сообщение №1 для потока id’)</script>. Это хорошо для наблюдения за работой, но ошибки так не отловишь. Так что сделал функцию дебага- запись каждой страницы, заголовков, данных курл в отдельную папку для отдельного потока. Добавил сюда ещё sleep, антикапчю, генерацию заголовков, режимов прокси 5 штук…- получилось довольно прилично.
---------------------
Другое, обращаясь к теме выбора демона, уже отказался от этой идеи. Решил делать с помощью iframe- просто печать нужных окон и одновременный запуск.
 
Аккуратнее с фреймами!
Я тоже многопоточность так делал... :D
Опера по моему не откроет более 10 фреймов пока не загрузится хоть 1 кароче не более 10 активных фреймов....

Я в итоге забил на открытие на 1 странице нескольких фреймов и написал цыкл гетов через meta.
То есть открываем фрейм а ниже meta refresh через 5 сек.
В GET шаг и максимум указан...
Все бы хорошо но опера делала на ура это а фаерфокс (или как он там правельно) отказался редиректить пока не загрузится фрейм (((

Короче с фреймами тоже намучаешься.....
 
Зачем такой изврат !?

PHP:
$ns // ключ так сказать потока.
// Нужно для того чтобы капчи сохронялись под уником и печеньки.
while(true)
{
// Регимся.
}

Вот while(true) {} – это тотальный изврат.
Использовать бесконечный цикл крайне небезопасно.
 
Вот while(true) {} – это тотальный изврат.
Использовать бесконечный цикл крайне небезопасно.
Но что делать, если нужно к примеру проверять письма постоянно, т.е. на крон ставить както нехочется. вообще у меня такое
PHP:
while(file_exits('file.pin')){
если файл существует, по идее быстрее file_exits быстрее пашет.
 
Но что делать, если нужно к примеру проверять письма постоянно, т.е. на крон ставить както нехочется. вообще у меня такое
PHP:
while(file_exits('file.pin')){
если файл существует, по идее быстрее file_exits быстрее пашет.
Periodical caller на JS.
 
Я извращался с jquery и ассинхронным аяксом, очень удачно получилось.
Держит 20-50 процессов
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху