Возможно ли, чтобы CakePHP выполнил задачу оболочки cakephp на фоне для i.e запустил длинные отчеты. Я также хочу обновить текущее состояние обратно пользователю через обновление таблицы во время отчета генерации и запросов с использованием Ajax.Запуск оболочек CakePHP на фоне
3
A
ответ
3
Да, вы можете запускать снаряды в фоновом режиме через обычную систему вызовов, как
/path/to/cake/console/cake -app /path/to/app/ <shell> <task>
Хитрость, чтобы начать один асинхронно с PHP; лучшим вариантом было бы поставить задания в очередь и запускать оболочку как задание cron так часто, что затем обрабатывает очередь. Затем вы можете также обновить статус задания в очереди и опросить эту информацию через AJAX.
2
Рассматривают его реализации в качестве демона: http://pear.php.net/package/System_Daemon
Есть ли у вас какой-либо другой вариант? Потому что, насколько я знаю, задания cron можно планировать только каждую минуту. Итак, что, если процесс был поставлен в очередь сразу после выполнения последнего задания cron, ему нужно подождать минуту? – codegy
У меня было впечатление, что твоя работа заняла больше времени, так что минутка или две не будут иметь значения. См. Здесь: http://stackoverflow.com/questions/984577/php-need-a-cron-for-back-site-processing-on-user-signup-or-fork-process – deceze
@deceze как передать этот путь -/path/to/cake/console/cake -app/path/to/app/ в crontab? –
Abhimanyu