![]() |
Принудительный обрыв связи
Можно ли как-нибудь (командой на PHP или JS) сделать так, чтобы при выполнении скрипта сервер прекращал работу с браузером (чтобы соединение не "висело"), а скрипт еще продолжал работать (например продолжал обработку mysql-таблицы)?
|
Вопрос немного не понятен.
Ну делаешь ты например mysql_query()... потому сделай mysql_close(db), закинь результат в массив и работай... или я не про то дувмаю? Сервер закроет коннект с бд. а скрипт будет выполнятся далее |
Цитата:
|
Псих, я это хочу сделать чтобы после выполнения скрипта запускалась какая-нибудь фоновая задача (секунд на 20). Так приходится делать, потому что cronа нету на сервере.
Naked, такой вариант не подходит, т.к. на сервере отключены функции: dl, shell_exec, exec, system, passthru, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo :( |
Цитата:
|
Naked, сервер поменять никак не получится... Просто я хочу сделать замену cronа... Чтобы после открытия любой страницы сайта, если подошло время запуска определенного скрипта, он запускался, но т.к. он не выводит никакого текста клиенту, мне нужно чтобы связь разорвалась, а скрипт продолжал работу.
|
Цитата:
вообше же можно просто делать вложениэ своего скрипта (который есессна делает что надо в зависемости от определенного интервала или условия но ничего не выводит) в каждую запускаeмую страницу ... |
Цитата:
PHP код:
Цитата:
|
ага ... все, понял, извени ...
вообше ето странно, т.к. в доках пишут Цитата:
мда, тока ета, я не понимаю зачем тебе там чтото выводить ... если всеравно выводить ничего ненадо ... мда ... тем более если у тебя все функции на ету тему отключены ... ето ... нехочу разочаровывать, но ... если функции типа exec, system и т.д. не разрешены, то ето значит, что из скрипта ты не можеш породить нового процесса, который бы продосжал существовать после завершения работы етого скрипта ... а ето в свою очередь значит, что так как ты хочеш не получится - ибо все что бы ты не предпринимал из скрипта, будет работать в рамках одного процесса и умрет естественно с ним вместе (в данном случае при разрыве соединения). единственный выход - ето ставить задачи так, чтобы они работали в моменты наименьшей загрузки сервака, гдето ночю например... обрати внимание - даже заход поискового бота сможет привести к выполнению задач ... например поставь задачу каждый день после 24 ... то есть первый заход после 24 запускает задачу ... и не забывай про ignore_user_abort() на всякий пожар... |
Всем спасибо. Проблему запуска второго скрипта решил так:
PHP код:
|
мда .. ну в общем ето принципиально не то что ты хотел, но канает ... наверное, хотя надежности не 100% ... ибо сеть ...
|
А ignore-user-abort разве не для этого придумывался?
|
ненаю для чего ignore_user_abort придумывался ... но просто если ты чтото запрашиваеш по сети (как в твоем примере по сокету), то если сеть не доступна в етот момент, то сам понимаеш ... а усер_аборт заставляет просто выполнятся локальный скрипт до конца, несмотря на разрыв связи ... кстати, ты всетаки лучше по методу пост запрашивай, так оно немного безопаснее - ибо если ктонить найдет твой крон и начнет его выполнять направо и налево, то хорошего мало (а в данном варианте ето прямо из адресной строки брayсера мона .;) )...
|
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 02:40. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.