시나리오 : statefull SF 서비스는 신뢰할 수있는 여러 컬렉션에 상태를 저장합니다. Statefull SF는 원격을 통해 사용할 수 있습니다.신뢰할 수있는 컬렉션을 초기화하는 가장 좋은 시점은 언제입니까?
StateManager.GetOrAddAsync를 호출하여 처음 사용하기 전에 컬렉션을 "초기화"해야합니까? 신뢰할 수있는 컬렉션에 대한 첫 번째 액세스를 낮추는 데 도움이 되나요? 아니면이 단계를 수행 할 필요가 없습니까?
이 초기화를 수행하는 것이 좋은 경우 적절한시기와 장소는 언제입니까? 가장 합리적인 장소는 RunAsync의 무한 루프 바로 직전이지만 컬렉션이 초기화되기 전에 remoting을 통해 호출되는 메서드가 호출되는 경우 어떻게해야합니까? 첫 번째 원격 호출에서 성능이 저하 될 것입니까 (컬렉션을 초기화 할 때)?
마지막으로 신뢰할 수있는 컬렉션을 작업 할 때 클래스의 컬렉션에 대한 참조를 유지하는 것이 좋습니다 (예 : 일부 인스턴스를 시작할 때 StateManager.GetOrAddAsync를 사용하여 참조를 가져옵니다).이 참조만으로 작업하거나 콜을 호출하기 전에 StateManager.GetOrAddAsync를 호출합니까?
답변 해 주셔서 감사합니다.
감사 : 다음은 그 예입니다! "Hold 참조와 GetOrAddAsync 호출"에 조금 추가되었습니다. 시나리오 : 안정적인 수집을 중심으로하는 래퍼 클래스입니다. 클래스 메소드는 트랜잭션을 작성하고 데이터를 저장/검색하며 트랜잭션을 커밋합니다. 래퍼 초기화/생성에서 컬렉션에 대한 참조를 얻는 것으로 충분합니다. 또는 트랜잭션을 만들고 컬렉션으로 작업하기 전에 모든 메서드에서 GetOrAddAsync를 호출해야합니까? 모든 AddPost/RetrievePost 앞에 상태가 표시됩니까? – ElDiabloComputatore
트랜잭션을 생성하고 콜렉션을 사용하기 전에 모든 메소드에서'GetOrAddAsync'를 호출해야합니다.음, 물론 변수에 저장할 수는 있지만, 예를 들어 여러 서비스의 메소드가 동시에 호출 될 때 작동하는지 확신 할 수 없습니다. 아마 작동 할 것이지만 나는이 방법을 추천하지 않을 것이다. 그래서, 모든 서비스의 메소드 호출에서 생성해야합니다. 왜, 어쨌든? 그것은 다른 작업과 비교하여 지옥처럼 싸다. AddPost를 호출 할 때마다 메소드 자체 안에 상태가 표시됩니다. – cassandrad