Так что это в большей степени теоретический вопрос, чем -специфический для языка, но подумайте об этом:
Мне нужен PHP для выполнения довольно системного -интенсивного процесса (с использованием PHPexec();
)который будет работать в фоновом режиме, но затем, когда пользователь покинет эту конкретную страницу, процесс будет уничтожен.
Я быстро понял, что переключатель мертвеца будет простым способом реализовать это, поскольку я не использую какие-либо переменные сеанса или другие сторонние переменные сервера -, которые могут в конечном итоге выглядеть как:
if($_SERVER['REQUEST_URI'] !== 'page_with_session.php'){
//Instead of 'session_destroy();' this would be used to kill said process
}
В любом случае, цикл while в PHP, сброс таймера в скрипте Python или повторный -вызов указанного скрипта каждые 15 секунд, чтобы он не дошел до конца и не убил процесс. Однако, когда пользователь покинет страницу, скрипт будет вызван, но не сможет перезагрузиться до завершения процесса.
Есть ли в этой идее зияющие дыры? Если нет, то как будет выглядеть реализация на PHP/JS? Порядок, в котором я вижу, как это работает, будет:
<?php exec('killer.py') ?>
os.system('pkill process')
<?php while(true){sleep(15); exec('killer.py no_wait_dont');} ?>
Любые мысли, которые у вас есть, ребята, будут очень признательны!
Мейсон