2009-07-13 3 views
3

Возможно ли, чтобы CakePHP выполнил задачу оболочки cakephp на фоне для i.e запустил длинные отчеты. Я также хочу обновить текущее состояние обратно пользователю через обновление таблицы во время отчета генерации и запросов с использованием Ajax.Запуск оболочек CakePHP на фоне

ответ

3

Да, вы можете запускать снаряды в фоновом режиме через обычную систему вызовов, как

/path/to/cake/console/cake -app /path/to/app/ <shell> <task> 

Хитрость, чтобы начать один асинхронно с PHP; лучшим вариантом было бы поставить задания в очередь и запускать оболочку как задание cron так часто, что затем обрабатывает очередь. Затем вы можете также обновить статус задания в очереди и опросить эту информацию через AJAX.

+0

Есть ли у вас какой-либо другой вариант? Потому что, насколько я знаю, задания cron можно планировать только каждую минуту. Итак, что, если процесс был поставлен в очередь сразу после выполнения последнего задания cron, ему нужно подождать минуту? – codegy

+1

У меня было впечатление, что твоя работа заняла больше времени, так что минутка или две не будут иметь значения. См. Здесь: http://stackoverflow.com/questions/984577/php-need-a-cron-for-back-site-processing-on-user-signup-or-fork-process – deceze

+0

@deceze как передать этот путь -/path/to/cake/console/cake -app/path/to/app/ в crontab? – Abhimanyu