PHP CLI в Windows: обработка команд Ctrl-C? - PullRequest
8 голосов
/ 02 марта 2012

Как мне обработать CTRL + C в PHP в командной строке?Pcntl_* функции не работают в Windows.

1 Ответ

0 голосов
/ 11 июля 2013

Если вы хотите запустить задачу в PHP через командную строку, которая занимает очень много времени, я бы попытался организовать ее по значкам и отслеживать, что уже сделано.

Теперь вы можете полностью обрабатывать каждый значок (например, обрабатывать, а затем сохранять его в XML-файле), и не только после обработки всего списка. Таким образом, сбой / остановка между ними приведет к отмене только одного значка, а не всех.

Если вы сохраняете свою текущую позицию после каждого значка где-то, вы можете легко возобновить работу, когда ваш скрипт вылетает или останавливается.

Теперь, если вы проверите список процессов ОС, чтобы увидеть, работает ли ваш скрипт, вы можете написать задание cron, которое запускает ваш скрипт каждые X минут, если он аварийно завершился и еще не работал.

Итак, TL; DR

  • Обработка задания маленькими значками
  • Позиция последнего успешно обработанного значка
  • Проверить, запущен ли уже процесс при запуске
  • Продолжайте запускать скрипт, пока все не будут счастливы!

Кроме того, мне нравится PHP для небольших заданий командной строки, но если у вас такая большая задача, может подойти что-то еще. Проверьте что-нибудь, что может работать стабильно в течение длительного времени и имеет возможность показать его прогресс. Возможно, небольшое приложение на C # с минималистичным графическим интерфейсом.

...