[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Восстановление связи
Doszhan777
Доброго времени суток,

С прошедшим праздником.

Как можно обеспечить стабильность работы скрипта, если у клиентской машины на несколько секунд пропадает интернет?

Например, выполняется скрипт на обычной локальной машине, скрипт все время переходит по различным страницам, интернет пропадает на несколько секунд - скрипт "замирает".

Какие есть способы решения проблемы, кроме запуска скрипта на сервере и перехода на проводной интернет?



Спустя 4 минуты, 9 секунд (11.01.2011 - 18:16) LRCenter написал(а):
Нужно "отцепить" скрипт от клиента.

ignore_user_abort(true);


и еще на всякий случай, (хотя не обязательно) добавить это:

set_time_limit(0);

Спустя 13 часов, 57 минут, 47 секунд (12.01.2011 - 08:14) Doszhan777 написал(а):
LRCenter,
Можно чуток подробнее.

В начале скрипта пишу:
ignore_user_abort(true);
set_time_limit(0);


При потере связи скрипт будет продолжать работать, но предположим связи еще нету, а скрипт уже должен "заходить" на страницу, что произойдет?

Спустя 1 час, 23 минуты, 32 секунды (12.01.2011 - 09:37) linker написал(а):
Цитата
но предположим связи еще нету, а скрипт уже должен "заходить" на страницу, что произойдет?
это как, скрипт с руками, ногами и мозгами?

Спустя 41 минута, 29 секунд (12.01.2011 - 10:19) Doszhan777 написал(а):
linker, ну я потому и в кавычках написал

Что будет если при потери связи скрипту необходимо загрузить данные с сети?

Спустя 1 час, 9 минут, 17 секунд (12.01.2011 - 11:28) LRCenter написал(а):
А, в этом смысле huh.gif
Ну тут тогда проблема на физическом уровне, делайте соединение стабильным, или подключайтесь к альтернативному каналу связи.

Тот код который я вам привел лишь позволит скрипту на сервере выполнить задачу до логического завершения в случае потери связи с клиентом.

Цитата
При потере связи скрипт будет продолжать работать, но предположим связи еще нету, а скрипт уже должен "заходить" на страницу, что произойдет?


Как что? По идее 400 или 408, хотя я могу ошибаться. http://ru.wikipedia.org/wiki/Коды_состояния_HTTP

Спустя 24 минуты, 58 секунд (12.01.2011 - 11:53) linker написал(а):
Это делается по расписанию с помощью какого-нибудь шедулера, например крона.

Спустя 3 часа, 2 минуты, 26 секунд (12.01.2011 - 14:56) Doszhan777 написал(а):
ОК.

Ну тогда можно после соединения со страницей проверить ответный код состояния страницы, если код отличный от 200, повторить соединение. Итак до бесконечности пока связь не восстановится.

Спустя 2 минуты, 40 секунд (12.01.2011 - 14:58) linker написал(а):
Doszhan777
Как ты думаешь, кто этим будет заниматься? PHP работает на стороне сервера и ничего не знает о каких-то кодах. Не надо делать то и так, что нужно делать согласно здравого смысла.

Спустя 3 часа, 9 минут, 49 секунд (12.01.2011 - 18:08) Doszhan777 написал(а):
linker, в смысле? Ну естественно не знает, PHP ведь язык программирования и "работать" он также не может :)

Работать может скрипт.

Я предлагаю решение описанную здесь:
http://www.dndialog.com/index.php?showtopic=3683


Никогда ранее не сталкивался такой проблемой и, конечно, вполне допускаю, что мое решение абсурдное.

Какое решение предлагаешь? Шедулеры просто запускает скрипты в назначенное время. Если я ошибаюсь подправь меня.

Спустя 15 часов, 41 минута, 5 секунд (13.01.2011 - 09:49) linker написал(а):
Говоря о PHP, я подразумеваю скрипты написанные на нем. Они не умеют сами по себе запускаться когда нужно программисту. Если ты тискаешь данные с каким-то сайтов, то делать это нужно не тогда когда удаленный юзверь открыл твою страницу. Посмотри на Яндекс или Гугл, ты думаешь когда вводишь запрос поиска они начинают ползать по инету и искать то, что ты попросил? Нет. Так и у тебя должно быть, юзверю нужно отдавать уже готовые данные, которые хранятся локально на твоем сайте. А добавлять, обновлять их нужно в фоне, запуская соответствующий скрипт по расписанию планировщиком. Тут не только в назначенное время, но и например, раз в минуту, или раз каждые полтора часа.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.