У меня есть Java Webserivce, который запрашивает БД для возврата данных пользователям.Запросы к БД дороги, поэтому у меня есть задание Cron, которое выполняется каждые 60 секунд для кэширования текущих данных в memcached.Элементы данных «закрываются» через некоторое время, что означает, что они не возвращаются запросами «получить текущие данные».Таким образом, эти запросы могут использовать кэшированные данные.
Клиенты используют функцию с тех пор, как «все», чтобы получить все данные, которые изменились со времени конкретной отметки времени (отметка времени последнего запроса).Это вернет все закрытые данные, если эти данные будут закрыты в течение этого времени.
Как я могу эффективно хранить данные diffs / Since?Доступ к БД для каждого, так как запрос слишком медленный (и не будет хорошо масштабироваться), но поскольку клиенты могут запрашивать любой со временем, это затрудняет создание универсального кеша.
Я пытался, чтобы задание cron также создавало кэш с тех пор.Он будет выполнять запросы «с тех пор», чтобы иметь все, что изменилось со времени последнего обновления, и пытаться заставить клиентов запрашивать метки времени, которые соответствуют заданию cron с момента запроса.Но несоответствия в том, сколько времени занял cron плюс ни работа с клиентом, ни работа с кукурузой, выполняются ровно каждые 60 секунд, поэтому небольшие различия складываются.В конечном итоге это приводит к закрытию некоторых данных, но кеш или клиент пропускают его.
Я даже не уверен, что искать, чтобы решить эту проблему.