2012-02-14 3 views
1

У меня есть скрипт для очистки страницы. Когда скрипт запускается, требуется 3 часа. Я хочу создать кнопку en при нажатии, скрипт должен прекратить работу.php stop выполнение во время выполнения

У кого-то есть идея?

+2

Вы используете это через браузер? cron job? командная строка? –

ответ

-1
<input type="button" value="Stop" onclick="window.stop()"> 

Используйте Window.stop, это остановит страницу от обработки

0

Вы не можете остановить PHP скрипт работает. Вы можете остановить браузер клиента дождаться ответа, но процесс PHP/Apache все равно будет выполняться в фоновом режиме до тех пор, пока он не завершит или не обнаружит ошибку.

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

1

Сценарий, который работает, является веб-страницей?

В общем, все, что вы можете сделать с кнопкой остановки, отправляет другой запрос на веб-сервер (просто прекращение загрузки веб-страницы не остановит запрос, запущенный на сервере). Этот другой запрос (обрабатываемый другим потоком/процессом PHP) должен позволить первому процессу знать, что он должен остановиться. Один простой способ межпроцессного (/ thread) общения состоит в том, чтобы второй скрипт создавал файл в каталоге/tmp/и каждый раз просматривал этот процесс в этом процессе. Если первый процесс видит, что файл существует, он должен прервать обработку и удалить файл. Чтобы быть немного более надежным, он также должен удалить файл при запуске, если он существует. Примечание: поиск файла (в Linux) происходит очень быстро. Он не ударит по жесткому диску (потому что он будет кэшироваться). Вы даже не заметите дополнительную задержку, пока вы действительно не начнете делать это 1000+ раз в секунду.

Очевидно, что это будет работать, только если второй цикл цикла в PHP. Если второй процесс выполняет один SQL-запрос, который занимает 3 часа, он не может искать файл каждую секунду или около того. В этом случае вам нужно что-то сделать с сигналами, убив первый процесс, см. http://php.net/manual/en/function.posix-kill.php.

Смежные вопросы