Архитектура веб-приложения - Требуется очередь заданий / задач?

В настоящее время я разрабатываю веб-приложение, которое позволит пользователям планировать задачи, которые будут выполняться с помощью HTTP API (от их имени). Задачи могут повторяться, и минимальное временное разрешение, которое можно использовать для планирования, составляет одну минуту. Я считаю, что из-за характера задач имеет смысл выполнять их асинхронно. Однако как должна выглядеть архитектура этой части?

Я подумал об использовании очереди задач для создания задач веб-приложением и предоставления им возможности выполняться работником. В этом случае, У меня есть несколько вопросов:

  • Как мне обрабатывать повторяющиеся задачи?
  • Как мне легко сохранять результаты задач?
  • Можно ли сделать очередь «постоянной»?
  • Должны ли рабочие напрямую взаимодействовать с базой данных?
  • Следует ли вручную ставить повторяющиеся задачи в очередь?

Что еще я мог бы рассмотреть? Поскольку я предполагаю, что я не единственный, кто думает об этой архитектуре веб-приложений, есть ли какие-нибудь «лучшие практики»? Можно ли использовать очередь задач?

9
задан Simon 30 April 2011 в 09:13
поделиться