[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как выполнить скрипт в фоновом режиме?
Страницы: 1, 2, 3
winrol
Как выполнить скрипт в фоновом режиме? xp, denwer, желательно пример.

//file1.php
<?php
echo 'start';
include 'loader.php';
echo 'end';
?>

нужно что б file1.php не ждал выполнения loader.php

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
TranceIT
А что происходит в loader.php?

UDP:
Собственно не важно. Нельзя.
Когда пользователь через браузер запрашивает страницу, апач смотрит что это за страница, если там есть PHP он передает скрипт интерпретатору, который обрабатывает данные, передает их апачу, который в свою очередь формирует HTML, исходя из полученных данных, и отдает их пользователю.
Как он отдаст HTML если данные не обработаны и не сформирован HTML?

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
winrol
Цитата (TranceIT @ 26.09.2012 - 15:11)
А что происходит в loader.php?

UDP:
Собственно не важно. Нельзя.
Когда пользователь через браузер запрашивает страницу, апач смотрит что это за страница, если там есть PHP он передает скрипт интерпретатору, который обрабатывает данные, передает их апачу, который в свою очередь формирует HTML, исходя из полученных данных, и отдает их пользователю.
Как он отдаст HTML если данные не обработаны и не сформирован HTML?

loader ни чего не отдает, он просто грузит файлы на сервер.

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
killer8080
winrol
под виндойй выбора большого нет, только стартуй тяжелый скрипт через сокеты, или курл. Только не забудь про
ignore_user_abort(true);
set_time_limit(0);
TranceIT
Цитата (winrol @ 26.09.2012 - 14:26)
loader ни чего не отдает, он просто грузит файлы на сервер.

Ну правильно. Апач принимает loader.php, отдает их интерпретатору, тот закачивает файлы, отдает апачу пустоту, апач формирует пустой HTML документ и отдает его пользователю.

Чтобы ускорить процесс есть два варианта:
1) Использовать ассинхронный ajax.
2) Использовать cron, возможно в связке с memcache

Но надо смотреть по ситуации. Возможно оба варианта не подойдут...

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
winrol
Цитата (killer8080 @ 26.09.2012 - 15:32)
winrol
под виндойй выбора большого нет, только стартуй тяжелый скрипт через сокеты, или курл.  Только не забудь про
ignore_user_abort(true);
set_time_limit(0);

file1.php будет ждать загрузки лоадера, а мне нужно что бы ждал.

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
TranceIT
killer8080
Курл дольше будет отрабатывать. Если запросов много, сервер ляжет при меньшей нагрузке...

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
winrol
Цитата (TranceIT @ 26.09.2012 - 15:34)
Цитата (winrol @ 26.09.2012 - 14:26)
loader ни чего не отдает, он просто грузит файлы на сервер.

Ну правильно. Апач принимает loader.php, отдает их интерпретатору, тот закачивает файлы, отдает апачу пустоту, апач формирует пустой HTML документ и отдает его пользователю.

Чтобы ускорить процесс есть два варианта:
1) Использовать ассинхронный ajax.
2) Использовать cron, возможно в связке с memcache

Но надо смотреть по ситуации. Возможно оба варианта не подойдут...

Да нет же юзверу ничего не нужно отдавать! ajax не подходить! И крон тоже, только php.

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
winrol
Гуглил, там что то типа юзать exec или system, но нормальных рабочих примеров не нашол.

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
killer8080
$f = fsockopen('127.0.0.1', 80, $err_no, $err_str, 5) or die($err_str);
fwrite($f,
"GET /loader.php HTTP/1.0\r\n".
"Host: ".$_SERVER['HTTP_HOST']."\r\n\r\n".
);

fclose($f);
echo 'Запрос отправлен в обработку...';




Спустя 1 минута, 45 секунд killer8080 написал(а):
Цитата (winrol @ 26.09.2012 - 15:40)
Гуглил, там что то типа юзать exec или system, но нормальных рабочих примеров не нашол.

system и exec так же будут ждать возврат скрипта, насколько знаю под виндой его в фон никак не отправишь, под *никсами есть nohup.

UPD подправил ошибку в запросе :)
TranceIT
winrol
Тогда юзай что killer8080 предлагает.


_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
winrol

$f1 = fsockopen($_SERVER['SERVER_NAME'], 80);
fwrite($f1,
"GET ".dirname($_SERVER['PHP_SELF'])."/loader.php?file=$_SESSION[path]&save=$_SESSION[save] HTTP/1.1\r\n".
"Host: ".$_SERVER['SERVER_NAME']."\r\n\r\n");
fclose($f1);



не работает, ошибок не выдает(.

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
killer8080
Цитата (winrol @ 26.09.2012 - 15:59)
не работает, ошибок не выдает(.

а как ты узнаешь, что он не работает?
winrol
Цитата (killer8080 @ 26.09.2012 - 16:04)
Цитата (winrol @ 26.09.2012 - 15:59)
не работает, ошибок не выдает(.

а как ты узнаешь, что он не работает?

файл не грузится, тоесть лоадер грузит файл в папку, я смотрю пусто.

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
winrol


set_time_limit(0);
ignore_user_abort(true);
session_start();

copy($_SESSION['path'],$_SESSION['save']);




если вызываю то грузит а через сокеты нет.

_____________
Заработай легко - много видов проверенного заработка, как Wap та и Web.
Быстрый ответ:

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