Използвам Zend Framework 1.9.6. Искам да започна да използвам cron задания. Нов съм в това, така че не съм съвсем сигурен как да направя това.
Мисля, че би било добра идея да съхранявам моите crons в /myapp/scripts
или /myapp/application/cronjobs
. Какво мислиш? (моето приложение има само модул по подразбиране)
След като реша къде да ги съхранявам, как да създам скрипт? Да кажем, че искам да получа достъп до база данни, да проверя за промени и да изпратя имейл като отчет. Ще трябва да използвам някои Zend_Db
компоненти и Zend_Mail
компоненти, както и да прочета стойностите на конфигурацията по подразбиране. Предполагам, че може дори да искам да стартирам приложението? Но няма да имам нужда от изгледи, така че не знам дали това би било най-добрата идея. Не знам. Какво трябва да направя и как мога да го направя? Отново използвам версия 1.9.6 и създадох приложението си със скрипта от командния ред Zend_Tool
.
Мисля, че има достатъчно информация онлайн за това как да добавите задачата cron към файла crontab. (Моят уеб хост също предлага инструмент, който да направи това наистина лесно, така че не съм толкова заинтересован от тази част).
Правили ли сте това в приложение 1.8+? Имате ли примерен скрипт, който бихте могли да споделите?
Решение
Откакто публикувах този въпрос, започнах нова работа и ми стана по-удобно да работя със Zend Framework. Ето какво правим в компанията, в която сега работя. Не казвам, че това е най-добрата практика или идеалът, но тази информация може да е полезна за някого.
- Създайте директория от най-високо ниво
bin
, за да съхранявате всички скриптове на командния ред. - Създайте файл за стартиране на CLI, който може да бъде включен във всеки скрипт на командния ред, който ще стартира приложението, така че да имате лесен достъп до вашите модели, точно както бихте направили, ако работите с контролер.
- Всички наши скриптове за работа cron се намират в директорията
bin
, така че не са публично достъпни. Освен това, тъй като те са скриптове на командния ред, те не използват контролери или изгледи. Те са предимно прости малки процедурни скриптове. Нашите cron задачи се управляват ръчно, така че не винаги помним кои cron задачи сме планирали да изпълняваме.