2009-07-03 5 views
2

У нас есть модульный веб-сайт, построенный на шаблоне MVC. Мы хотели бы создать скрипты cronjob, которые выполняются каждые 1, 15, 60 минут и которые выполняются ежедневно. Мы -need-cronjobs (чтобы никто не стал спрашивать, действительно ли мы им нужны).Реализация кроны в архитектуре?

Действия включают в себя доведение до orders для обработки каждые 15 минут и прием новых user registrations каждые 60 минут.

У нас есть папки для controllers, models и views. Они, очевидно, содержат соответствующие файлы для нашего сайта.

Это глобальная структура каталогов:

 
Root 
- /controller 
- /css 
- /js 
- /model 
- /view 

/JS и/CSS может быть достигнуто с помощью браузера. Остальные обрабатываются действиями контроллера.

Теперь, где cronjobs вписываются?

  1. Я могу создать отдельные функции в уже существующем контроллере? (Мое предпочтение, так что код расположен там, где он логически должен)
  2. Или я создаю новые контроллеры для cronjobs?
  3. Или что-то еще ..?

ответ

2

Если вы используете фреймворк своего собственного творения, то я бы сказал, что на этот вопрос нет «правильного» ответа, хотя, безусловно, есть неправильные ответы.

Если вариант 1 имеет смысл для вас, и команда, с которой вы работаете, тогда все должно быть хорошо.

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

Если вы работаете с существующей инфраструктурой, я предлагаю вам добавить это к вашему вопросу, и вы согласуетесь с шаблонами проектирования этой структуры.

+0

это мое. Проблема в том, что у меня есть «общий» маршрут, который позволяет выполнять действия контроллера по url ... Или это означает, что я должен просто исключить эти действия из маршрутизации? – Ropstah

+0

Я пытаюсь настроить свои функции cron так, чтобы они были в безопасности, даже если ненадежная сторона пытается их выполнить. В зависимости от ситуации вы можете блокировать людей от выполнения вещей на основе разрешений или времени (имеет ли значение, если кто-то запускает автоматическое задание, если он работает только один раз в час, и они не видят выхода?). – acrosman

+0

Я бы предпочел, чтобы другие люди не работали ... Но я смогу справиться здесь. Благодаря! – Ropstah

Смежные вопросы