2014-12-17 4 views
-1

Проблема: некоторые пользователи могут создать документ и выбрать дату и время в будущем для выполнения некоторого кода в этом документе. Пользователи также могут отменить запланированное событие. Я ищу лучшую реализацию в GAE. Я думаю о двух возможных реализациях:Google App Engine, лучший способ запланировать выполнение кода

-A Push Задача для любого документа, установка параметра eta, я могу сохранить результат Taskqueue.add (..) в документе, в случае, если пользователь хочет удалить перед выполнением задачи. Я не знаю, есть ли максимальное количество задач, которые я могу запустить, и максимальное количество дней для eta (30) может быть проблемой.

-Я могу сохранить в DataStore дату и время документа и использовать cron , чтобы проверять каждые 10 минут, если есть какая-либо запись для обработки. Я боюсь, что такой подход может быть дорогим. Я прав?

+0

Просто, чтобы быть более ясным: на той же платформе, на том же языке, в той же структуре, на двух альтернативных подходах. Возникает вопрос: первый подход: он технически соответствует требованиям? Второй подход - это дорого (все знают, что очень сложно рассчитать стоимость в приложении). – chairam

ответ

2

Поскольку ваши пользователи могут планировать событие, а также отменять - я бы рекомендовал сохранить запланированный запрос в хранилище данных и проверить работу cron, если в это время запланировано что-либо.

Чтобы сократить количество выполняемых заданий, вы можете изменить точность даты и времени, которое пользователь может выбрать для задания (например, 15-минутные приращения или почасовые). Пока вы правильно создаете объект запланированного запроса - это не должно быть дорогостоящим ударом в хранилище данных. Чтобы уменьшить количество удаленных хранилищ данных, вы можете выбрать ряд запланированных событий в одном запросе и поместить их в memcache - пока вы управляете этим кешем, когда пользователь его модифицирует.

+0

Благодарим вас за ответ. Когда я писал «дорогой», я больше думал о времени виртуальной машины, чем к доступу к хранилищу данных. – chairam

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