Обрыв соединения и дальнейшее выполнение скрипта.

sunchess

Новичок
Обрыв соединения и дальнейшее выполнение скрипта.

Здравствуйте.
Есть не тривиальная задача: 2 скрипта, первый посылает второму данные, второй должен получить их и оборвать соединение, а сам продолжить работу.
Соединение по http.
Тут в соседней ветке обсуждают что-то подобное http://phpclub.ru/talk/showthread.php?s=&threadid=115776&rand=62, но в моей ситуации скрипты находятся на разных серверах.

Есть ли знатоки, кто делал подобное?
 

Alexandre

PHPПенсионер
Есть не тривиальная задача: 2 скрипта, первый посылает второму данные, второй должен получить их и оборвать соединение, а сам продолжить работу.
вариант 3
скрипт получает данные, и скидывает их в очередь.
крон ежеминутно читает очередь и обрабатывает данные.
 

NeD

Новичок
Если я правильно понял то сервер 1 посылает запрос на сервер 2. Данные кончились 1 сервер отрубил соединение, на 2 сервере скрипт продолжает работать. В чём проблема то?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
2й сервер должен подтвердить получение данных в ответе
 

sunchess

Новичок
Патоки под апачем не работают. Пока отрубаю соединение со стороны первого сервака. Но это полу мера, действительно хотелось бы проверить целостность данных.


Может можно как то не через http решить вопрос?
 

fixxxer

К.О.
Партнер клуба
Первый вариант: делаешь proc_open на отдельный скрипт долгой обработки, чтение через pipe, stdout в /dev/null, stderr в лог. В pipe передаешь нужные данные. (Если нужно получить от скрипта какой-то идентификатор - на stdout тоже pipe, скрипт сразу туда отдает id и закрывает stdout). Преимущество - просто, как два пальца. Недостаток - неконтролируемое число таких скриптов, при большом потоке можно получить неуправляемый сервер.

Второй вариант: вешаешь фоном демоноподобный скрипт, далее два варианта: первый - демон слушает какой-то порт, соединяешься с ним и передаешь данные (но тут придется заморочиться с асинхронностью либо архитектурой master-workers), либо через любой сервер очередей (можно и mysql в этом качестве использовать вполне).

Естественно, если нужно узнать результат работы, нужен отдельный поллер.
 
Сверху