, если я должен реализовать что-то вроде этого, я бы вам 2 разных скрипта:
- A. process_controller.php
- B. process.php
Рабочий процесс должен быть:
- пользователь вызывает сценарий A с помощью браузера
- сценарий A start сценарий B с помощью system () или exec () и передать ему «токен процесса» через командную строку.
- сценарий B записывает статус выполнения в разделяемое пространство: файл, названный как token, таблицу базы данных. в общем, что-то, что может быть прочитано также скриптом A, используя токен в качестве ссылки
- , сценарий A содержит вызов AJAX в опросе, который запрашивает сценарий A статус процесса для данного token
Опрос Ajax:
<script>
var $myToken;
function ajaxPolling()
{
$.get('process_controller.php?action=getStatus&token='+$myToken, function(data) {
$('.result').html(data);
});
}
setInterval("ajaxPolling()",60*1000); //Every minute
</script>
есть некоторые соображения о связи между двумя процессами, в зависимости от того, сколько экземпляров сценария B вы могли бы для запуска параллельно
- Только один: вам не нужен случайный / уникальный токен
- Один на пользователя:
session_start(); $token = session_id();
- Больше, чем один на пользователя: session_start (); $ token = session_id (). microtime ();
задан Tobogganski 19 August 2013 в 04:12
поделиться