2014-10-27 6 views
0

Я хочу разработать приложение, на котором пользователь может регистрироваться для уведомлений (несколько), чтобы всякий раз, когда тариф пробирается ниже определенного порога, он получает уведомление. Тарифы взимаются с стороннего веб-сайта. Я хочу сделать это в Google App Engine.Планирование заданий cron

Теперь, исходя из того, что я понимаю, мне нужен процесс 24/7, который проверяет тарифы с интервалами в 30 минут и отправляет уведомление, когда он достигает порога. Возможно, для этой задачи можно использовать работу cron приложения-движка? Но при максимальном задании на 100 cron можно запланировать, что было бы лучшим способом для этого. Кроме того, процесс для каждого пользователя будет потерять ресурсы, что было бы лучше алгоритмов планирования для повышения эффективности?

ответ

1

Вы хотите запланировать один cron, который запускается каждые 30 минут и бросает элемент в очередь задач. Этот единственный элемент в очереди задач сможет проходить через всех ваших пользователей и генерировать задачи, чтобы снова извлечь все необходимое в фоновом режиме. Две важные вещи:

  1. Вы хотите, чтобы начальный запрос cron возвращался как можно быстрее, поскольку URL-адреса имеют 60-секундный срок.
  2. Разделите любую работу в отдельные очереди задач, чтобы достичь выше, а также итерации через источники данных и/или пользователей.

Основываясь на том, что вы объяснить, вы можете использовать нажимные очереди задач: https://cloud.google.com/appengine/docs/python/taskqueue/overview-push

+0

Запрос HTTP вызываются хронами может работать до 10 минут. Но я согласен с этой стратегией;) – koma

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