2009-07-13 12 views
3

Ist es möglich, dass CakePHP eine CakePHP-Shell-Aufgabe im Hintergrund für ausführen, d. H. Lange Berichte laufen. Ich möchte auch den aktuellen Status zurück zu dem Benutzer durch Aktualisieren einer Tabelle während des Berichts Generation und Abfragen mit Ajax aktualisieren.Running CakePHP Shells auf Hintergrund

Antwort

3

Ja, können Sie Muscheln im Hintergrund über normale System laufen Anrufe wie

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

Der schwierige Teil ist ein asynchron von PHP zu starten; Die beste Option wäre, Jobs in eine Warteschlange zu legen und die Shell als Cron-Job zu verwenden, der dann die Warteschlange verarbeitet. Sie können dann auch den Status des Jobs in der Warteschlange aktualisieren und diese Informationen über AJAX abfragen.

+0

Haben Sie eine andere Möglichkeit? Denn soweit ich weiß, können Cron-Jobs nur jede Minute eingeplant werden. Was ist, wenn der Prozess direkt nach dem letzten Cron-Job in die Warteschlange gestellt wurde, muss er eine Minute warten, oder? – codegy

+1

Ich hatte den Eindruck, dass deine Jobs länger dauerten, also wäre ein oder zwei Minuten egal. Siehe hier: http://stackoverflow.com/questions/984577/php-need-a-cron-for-back-site-processing-on-user-signup-or-fork-process – deceze

+0

@deceze wie man diesen Pfad gibt -/Pfad/zu/Kuchen/Konsole/Kuchen-App/Pfad/zu/App/ in Crontab? – Abhimanyu