Я использую Zend Framework 1.9.6. Я хочу начать использовать задания cron. Я новичок в этом, поэтому я не совсем уверен, как это сделать.
Я думаю, что было бы неплохо хранить мои cron в /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 мы запланировали запустить.