Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Фоновый процесс php / 5 сообщений из 5, страница 1 из 1
28.03.2013, 21:59
    #38203273
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фоновый процесс php
Всем привет.

У меня есть php-скрипт, время выполнения которого 2-4 часа в зависимости от нагрузки сервера. Естественно, выполнять его через браузер нельзя, так как скотпт отваливается по timeout (как, собственно и браузер). Поэтому я еговыполняю через unix-shell командой php <имя файла>. И все отрабатывает.

Вопрос в следующем - как можно из web с породить этот php процесс, который будет выполняться в фоне без timeout-а? В браузере с помощью Ajax буду следить за ходом выполнения. Я нашел 2 варината:

1. Функция exec(). Но основной скрипт, из, которого она вызывается, ждет его завершения, в итоге отваливается по timeout. К тому же, браузер висит и ждет ответа.

2. Функция pcntl_fork(). Она порождает дочерний процесс, но у нее есть timeout.

Может ли многоуважаемый ALL подсказать, как решить мою задачу? Может, у вышеописанных функций есть какие-то параметры, выполняющие эту задачу или есть еще варианты?

Спасибо.
...
Рейтинг: 0 / 0
28.03.2013, 22:36
    #38203312
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фоновый процесс php
Скриптом генерите файлик с заданием, флагом выполнения и еще чем... Скрипт по крону запускайте ежеминутно или пореже... Первым делом проверка на уже запущенный экземпляр, затем чтение задания и выполнение. Если экземпляр уже запущен или нет задания - завершаем работу. Результаты работы (в том числе и промежуточные) писать тоже в файл. Впрочем, вместо файлов можно и БД использовать. Ну а из браузера через скрипты уже взаимодействуйте с этими файлами.
...
Рейтинг: 0 / 0
29.03.2013, 01:54
    #38203450
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фоновый процесс php
...
Рейтинг: 0 / 0
29.03.2013, 08:26
    #38203538
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фоновый процесс php
ScareCrow http://www.php.net/manual/en/function.set-time-limit.php] http://www.php.net/manual/en/function.set-time-limit.php
http://www.php.net/manual/en/function.ignore-user-abort.php] http://www.php.net/manual/en/function.ignore-user-abort.php Случайно закрой браузер и начни все сначала :-)
...
Рейтинг: 0 / 0
30.03.2013, 08:23
    #38205267
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фоновый процесс php
Alexey Agafonov,

насколько помню, exec() умеет запускать процесс асинхронно.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Фоновый процесс php / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]