Начало работы с заданиями cron и PHP (Zend Framework)


Я совершенно новичок в теме заданий cron, поэтому я понятия не имею, с чего начать изучать их; когда, почему или как использовать их в моем приложении Zend Framework или PHP в целом.

Может ли кто-нибудь объяснить процесс на примере или порекомендовать какие-нибудь хорошие ресурсы для начала работы?

Author: WhiteKnight, 2009-05-04

5 answers

Задания Cron - это механизм автоматизации задач в операционной системе Linux. И имеет довольно мало общего с Zend Framework. Однако фреймворк может помочь вам разработать расширенную задачу cron на php. Но тогда вам придется настроить свою работу cron в оболочке.

Поиск в Google для "как настроить задание cron" показал эту ссылку вверху:

Http://www.adminschoice.com/docs/crontab.htm

Я уверен, что эта статья поможет вам.

P.S.

В качестве команды для выполнения вы должны поставить что-то вроде:

/usr/local/bin/php -f <path_to_your_php_script>

Где первый путь - это полный путь к исполняемому файлу php cli, который может отличаться на вашей машине. Вы можете убедиться в этом, выполнив следующую команду:

which php

Удачи с заданиями cron;)

 3
Author: Pavel Bastov, 2009-05-04 07:50:58

Поскольку Zend Framework представляет собой набор каким-то образом слабо связанных компонентов, вы можете использовать компоненты, которые вам нравятся, в каждом PHP-скрипте, включая сценарии командной строки. Однако вам нужно убедиться, что PHP может найти соответствующие классы Zend Framework, поэтому вам нужно добавить путь к библиотеке Zend Framework в свой include_path. Затем вы можете настроить автоматическую загрузку с помощью Zend_Loader_Autoloader (ZF>=1.8) или Zend_Loader (ZF

Как и любой другой скрипт или программа, этот PHP-скрипт можно естественным образом использовать в задании cron. Еще одна вещь, которую следует отметить, это то, что вам нужно убедиться, что пользователь, выполняющий ваши задания cron, имеет доступ для чтения к пути библиотеки Zend Framework, иначе PHP не сможет прочитать файлы Zend Framework.

Если ваш вопрос был нацелен на использование компонента MVC в сценариях CLI, я должен признать, что у меня нет никакого опыта в этом. Я бы предположил, что немалое усилие необходимо реализовать соответствующие классы запросов, ответов, распределителей и маршрутов.

РЕДАКТИРОВАТЬ:

Пожалуйста, смотрите эту статью для получения дополнительной информации.

 2
Author: Stefan Gehrig, 2009-05-04 07:53:10

Возможно, поможет пример из реальной жизни. Несколько лет назад я работал над проектом календаря событий с использованием платформы Zend. В этом календаре пользователь может создать событие и прикрепить к нему 1 или более дат. Естественно, я реализовал это как объединение "многие к одному" в своей базе данных, но это означало, что для прикрепления даты событие должно было существовать в первую очередь. Однако я хотел разрешить пользователям добавлять даты во время , когда они создавали событие, а не после , когда они создали событие. Другими словами, я хотел, чтобы пользователь редактировал все аспекты события одновременно и отправлял только тогда, когда нажимал "сохранить".

Я решил проблему, вставив новую пустую запись о событии в базу данных, когда пользователь начинает создавать запись о событии. Эта пустая запись заполняется и сохраняется, когда пользователь нажимает "сохранить", или удаляется, когда пользователь нажимает "отменить". Проблема возникла, когда пользователи ушли, не нажав "отмена", и осталась пустая запись о событии в базе данных. В конце концов, база данных заполнится этими бессмысленными пустыми событиями, и все может стать ужасно.

Я написал функцию под названием "обслуживание()", которая, помимо прочего, удаляла все несохраненные записи старше 24 часов. Я настроил задание cron, которое выполнялось каждую ночь, и выполнил php-скрипт командной строки, который запускал maintenance().

Другие вещи, для которых вы могли бы использовать задание cron:

  • Отправьте пакет электронных писем новым пользователям. (каждые 5 минут?)
  • Обновлять статистику пользователей (каждый час?)
  • Выполняйте ресурсоемкие операции, когда серверы не перегружены трафиком (каждую ночь в полночь или раз в неделю в воскресенье вечером?)
  • Любое другое событие, которое не происходит в ответ на запрос пользователя (то, что Джефф называет "внеполосным").
 2
Author: Kyle Simek, 2009-05-04 19:08:32

Вас также может заинтересовать как хранить задания cron с помощью ZF

 1
Author: Gabriel Solomon, 2017-05-23 10:33:55

Вот ссылка на хороший способ внедрения системы cron с помощью Zend Framework:

Задачи Cron в приложениях Zend Framework

Лично я адаптировал его так, чтобы параметр мог быть динамическим, но база та же:-)

 1
Author: Loïc Lavoie, 2011-08-03 15:15:10