![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
Hi All!
есть необходимость запускать через system внешний процесс, причем в бакграунде, вопрос в том как отследить завершение процесса, причем не просто завершение, но и важен ответ, думаю создавать блокировки, можно на уровне файлов, или БД кто че думает по этому поводу, может есть какие наработки? -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Можно уточнить: Вы собираетесь некое приложение демонизировать, отслеживать его выполнением и получить результат его работы? Для чего Вам в этом случае PHP не совсем понятно. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
да ну да, немного не в тему, сорри, есть система, написанная на пхп, котороя должна передавать данные другой системе, данные могут быть большими, во время передачи, страница должна жить, это не проблема, проблема отследить демона Добавлено через 1 минуту и 30 секунд демон как раз и будет передавать, и резалутаты его передачи нужно получить обратно -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
1. Если это постоянная процедура - для запуска используйте крон.
2. Данные, которые передаются между системами можно писать в лог. 3. Для вывода некой статистики, как я понял, можно читать данные из лога (см. пункт 2). Если я чего-то не понял, обрисуйте задачу яснее. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
не пойдет, процедура выполняется по запросу пользователя итак... по запросу пользователя (нажали на ссылку) запускаем демон, отдали странице отчет что дмон запушен, на странице выполняется, через некие промежутки времени, скрипт опроса состояния демона, как только демон закончил работу, отправляем на страницу отчет о работе демона вопрос: как лучше реализовать механизм определяющий, жив ли демон или уже закончил работу? Добавлено через 31 секунду надеюсь понятно объяснил -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
1. По запросу пользователя создаем очередь в базе данных. 2. Выводим пользователю сообщение, о том, что необходимо подождать некоторое время выполнения действия. 3. По крону раз в минуту запускаем обработчик очереди, который выполняет необходимые действия. 4. Обработчик очереди пишет лог. 5. Как только видим флаг окончания работы в логе по идентификатору очереди созданной пользователем - выводим информацию о проделанной работе. Если данная процедура слишком часта, советую ставить лок на крон, что бы данный скрипт не забил систему своими копиями. Поставить лок можно при помощи системной функции lock:
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
что есть понятие очередь, не понял
кто должен увидеть флаг, обработчик? Добавлено через 10 минут и 46 секунд если конкретно, то задача стоит передать файл по фтп с одного сервера на другой т.е. мне нужно дожадаться пока демон не передаст файл, а файлы могут быть большие -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
-------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 1 Всего: 73 |
Если уж проще, то, создаем табличку в базе с идентификатором пользователя, который инициировал очередь, именем файла (загруженного пользователем?) который будет залит на FTP, текущем состоянии (назначен, исполняется, завершен) очереди. Когда пользователь загружает (предполагаю) файл, скрипт заносит в базу необходимые данные и оповещает пользователя о том, что ему необходимо немного подождать. Когда по крону срабатывает скрипт (не демон - почитайте в вики, что есть демон), он идет в базу и смотрит очередь на предмет заданий со статусом "назначен", после чего берет оттуда информацию, устанавливает флаг "исполняется" и заливает файл на FTP. Когда процесс завершится, скрипт обновит данные записи в очереди и назначит заданию статус "завершен", после чего, когда пользователь обновит страничку - увидит, что его текущее задание исполнено.
Вообще, очень тяжко отвечать на вопросы, которые поставлены, пусть даже не слишком грамотно, но без подробного описания проблемы и желаемого результата. И вот потому, порой нет никакого желания помогать. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: нет Всего: 20 |
IZ@TOP, сенькс
-------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |