Exemplo n.º 1
0
        public async Task Initialize(IFriendlyGrain owner, string name)
        {
            var attempts = 0;

            do
            {
                State = new PetGrainState
                {
                    Owner = owner,
                    Name  = name
                };

                try
                {
                    await WriteStateAsync();

                    break;
                }
                catch (OrleansException)
                {
                    await ReadStateAsync();

                    if (State.Name == name)
                    {
                        break;
                    }
                }
            } while (++attempts < 3);

            if (attempts == 3)
            {
                throw new InconsistentStateException($"After 3 attempts, could not write state for {this.GetPrimaryKey()}");
            }
        }
Exemplo n.º 2
0
 Task IFriendlyGrain.Initialize(IFriendlyGrain bestFriend, string firstName, string lastName, IList <IPetGrain> pets, Immutable <byte[]> extraData) =>
 SafeWriteStateAsync(
     () =>
 {
     State.FirstName  = firstName;
     State.LastName   = lastName;
     State.BestFriend = bestFriend.Cast <IFriendlyGrain>();
     State.Pets       = pets.ToImmutableHashSet();
     State.ExtraData  = extraData.Value;
 });