Мне сложно найти подробную документацию по использованию StatelessWorkers.Orleans StatelessWorkers
Я хочу достичь чего-то подобного this. Как было предложено в документе, мне нужно использовать Работников без гражданства, чтобы обрабатывать некоторые сообщения и активировать зерна, которые в конечном итоге будут удерживать состояние.
Я хотел бы иметь несколько экземпляров обработки зернистости диспетчера «инициализация», поскольку это зерно отнюдь не обрабатывает любое состояние, и сообщения не обязательно должны быть поставлены в очередь.
Нужно ли отмечать это зерно как реентера? или Будет ли достаточно StatelessWorker (атрибут)?
Что касается активации, кажется, мне нужно наследовать от IGrainWithIntegerKey
(или аналогичный интерфейс). это означает, что мне нужно активировать зерно следующим образом:
GrainClient.GrainFactory.GetGrain<IDispatcherActor>(0)
Поскольку я всегда использовать 0 как идентификатор будет несколько экземпляров зерна еще активироваться? или мне нужно создать разные идентификаторы. Похоже, я не могу назвать зерно следующим образом:
GrainClient.GrainFactory.GetGrain<IDispatcherActor>()
даже если я наследовать от IGrain
Спасибо за ваш ответ, Ричард. «Их можно вызывать только из бункера». Значит ли это, что я не могу активировать безгражданца, использующего GrainClient? и имеет ли смысл сделать его реентерабельным? так что одно зерно может обрабатывать несколько запросов? – Jonny
Работников без гражданства можно вызывать из других зерен, но не напрямую от внешних клиентов. Я бы сделал реентератор для оптимизации производительности. Я не думаю, что нужно делать это с людьми без гражданства. –