-
У меня есть потребность реализовать некоторое приложение со сложной внутренней логикой на джанге. Концепция сигналов мне очень подходит для реализации бизнес процессов, однако есть потребность в сигналах, которые генерировались бы не в результате одноразового выполнения функции или модификации объекта, а по расписанию. Иными словами хочется использовать механизм сигналов для активизации различных частей системы по расписанию.
Это возможно сделать не сильно противореча идеологии джанги? -
Сигналы для этого не предназначены. Читайте: http://softwaremaniacs.org/blog/2009/05/31/what-signals-for/
-
Ну и в дополнение к ответу как не надо делать, ответ как надо делать: складывайте задания в очередь и обрабатывайте по крону. Стандартный подход.
-
Была мысль об объекте, который мог бы по расписанию сам генерировать сигналы. Таймер такой, своеобразный. Понимаю что в концепцию событийно-ориентированного программирования не очень вписывается, но крон тоже не способствует идеологической чистоте решения. Крон ещё не очень хорошее решение потому что расписание нужно извне настраивать, а не в самом приложении состоянием объектов.
-
но крон тоже не способствует идеологической чистоте решения.
Не возьмусь спорить о таких понятиях, как "идеологическая чистота". Однако крон — это то самое работающее по расписанию стандартное отлаженное и простое решение, которое вы ищете.
Крон ещё не очень хорошее решение потому что расписание нужно извне настраивать, а не в самом приложении состоянием объектов.
Вы можете настроить крон один раз в максимально простом режиме: просто чтобы он дёргал ваше приложение достаточно часто. А уже в приложении с помощью состояниё объектов как угодно гибко настраивать, что и когда запускать.
-
То есть вы имеете в виду с помощью крона организовать вызов какого-то метода моего приложения, а уже этот метод будет посылать необходимые сигналы? Это просто гениальное решение! Спасибо огромное. :-)
-
с помощью крона организовать вызов какого-то метода моего приложения, а уже этот метод будет посылать необходимые сигналы
А зачем тогда сигналы ? Просто дёргайте вьюху по URL и делайте в ней что хотите.
-
Возможно я не очень точно мою задачу описал. Я пишу по сути фреймворк на основе джанги, который будет служить для разработки специфических систем автоматизации. Для реализации картотечных функций достаточно моделей, для бизнес логики, выраженной в терминах конечных автоматов - нужны сигналы. Заранее неизвестно с какого рода объектами нужно что-то сделать в какое-то время. Поэтому предполагается создать объект таймер, который будет по расписанию сигналы времени в "Бесконечный Эфир" выдавать, а объекты реализующие автоматную логику будут на них реагировать. Эти же самые объекты будут реагировать на стандартные сигналы отдельных моделей. То есть сигналы вида pre_save/post_save все равно будут использоваться для определения факта модификации моделей, тогда почему бы и время сигналами не раздавать всем заинтересованным объектам?
-
Раздавайте сигналы, раз они вам нужны. По крону.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


