0

Я использую Objectify в моем модуле конечных точек Google, мой проект конечной точки обрабатывает большинство моих операций чтения и записи в хранилище данных, но я хотел знать, является ли эффективной практикой проектирования использование очередей задач для переноса операции чтения или записи в хранилище данных в движке Google.Очереди задач и Datastore читают и записывают

+0

Почему вы хотите обернуть чтение/запись в задачах? Какую проблему ты пытаешься решить? –

+0

Я просто стараюсь, если это поможет ускорить чтение и запись операций. –

ответ

3

Все данные, необходимые для выполнения задачи, должны быть записаны где-то, а App Engine сохраняет эти данные в очереди задач, поддерживаемой одним и тем же хранилищем данных. Если ваша операция записи не включает в себя хруст числа, выбор URL, внешние вызовы API, обновления сотен на сущности или какую-либо другую дорогостоящую логику, нет никакой выгоды для того, чтобы обернуть вызов записи в задаче.

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

+0

Спасибо, как я уже сказал, это была просто мысль. Вы разработчик appengine. –

+0

Вы можете нажать на мое имя, чтобы увидеть, что я не :) Но я использую App Engine уже много лет. –

+0

Хорошо, просто начал использовать его, любя его. –

0

Рассмотрите возможность использования write-behind-cache, если вы хотите ускорить запись. Есть небольшой шанс, что вы потеряете свои данные, но вы значительно ускорите скорость записи (как видно пользователю).

Идея состоит в том, чтобы сначала записать объект только в memcache, поэтому пользователь не будет ждать записи фактического хранилища данных, а затем возьмет этот memcached объект по очереди задач/cron и запишет его в хранилище данных.

+0

Я использую objectify @cache аннотацию, поэтому я думаю, что кэш-память обрабатывается, я не понимаю ур концепцию write-behind-cache tho. –

+1

Фактически обрабатывает async пишет прозрачно (если вы не используете.now()), вы не получите никакой обратной связи (например, созданного идентификатора объекта). – jirungaray

+0

Огонь и забудем, что я имею в виду, но я понимаю, но есть определенные операции, которые он не будет применять к типичному примеру, когда ур обрабатывает транзакцию, возможно, потребуется получить идентификатор одного объекта и ссылаться на другой объект. для наконечника tho. –

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