2016-09-02 4 views
2

Я просто изучаю Microsoft Orleans, и мне интересно, как лучше всего справляться с одним из наших сценариев. У нас будет служба REST, которая получит запрос, который в конечном итоге приведет к созданию новой записи во внешней системе. Эта запись будет иметь длинное значение Id. Затем мы вернем этот идентификатор вызывающему.Орлеанский ключ и записи базы данных

Какова рекомендация по этому сценарию? Должно ли существовать зерно без апатии, которое обрабатывает внешнюю систему и получает идентификатор. Я думаю, что это зерно «фабрики» затем создало зерно с идентификатором и предоставило исходную информацию этому зерну (так что ему не нужно извлекать данные из внешнего хранилища). Тем не менее, я не хочу, чтобы он пытался прочитать эту информацию из внешнего хранилища при первом включении.

Есть ли рекомендация о том, как справиться с этим, используя зерна Microsoft Orleans?

ответ

2

Это зависит от того, что вы хотите сделать с данными для этой записи в зерне. Но, как правило, это звучит так, что ваш сервис должен вызывать регулярное зерно (не являющееся безгражданским зерном) и использовать длинное значение id в качестве первичного ключа зерна (нет такой вещи, как «создать» зерно, вы просто вызываете его через ссылка и будет автоматически создаваться). Затем зерно может либо считывать данные из внешнего хранилища, либо явно передавать некоторые части этих данных. Тогда, если вам нужно будет обслуживать фьючерсные запросы об этих данных из памяти, вы просто направите их на это зерно, и оно будет служить им. Зерно также может периодически (или по некоторому внешнему сообщению) принимать решение об обновлении/аннулировании этих данных, если эти данные изменяемы.

+0

Когда приходит первый запрос, идентификатор отсутствует. Вместо этого вызов внешней системы заключается в создании нового экземпляра, а внешняя система возвращает новый идентификатор. Поэтому у меня не будет идентификатора до первого вызова внешней системы. Мое зерно затем вернет этот идентификатор клиенту. Поэтому в будущем клиент может получить статус или внести изменения в редактирование. –

+0

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

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