static void Main(string[] args)
        {
            //用sqlite持久化后
            var actorid        = "this1234";
            var dbfile         = @"C:\MyFile\Source\Repos\Asp.NetCoreExperiment\Asp.NetCoreExperiment\ProtoActor\ProtoPersistenceDemo01\data.sqlite";
            var sqliteProvider = new SqliteProvider(new SqliteConnectionStringBuilder()
            {
                DataSource = dbfile
            });
            var counter = new Counter(sqliteProvider, actorid);
            var props   = Actor.FromProducer(() => counter);
            var pid     = Actor.Spawn(props);

            for (int i = 0; i < 2; i++)
            {
                var no = int.Parse(Console.ReadLine());
                pid.Tell(new Added {
                    Amount = no
                });
            }

            Console.ReadLine();
            //完成处理后清理持久化的操作
            sqliteProvider.DeleteEventsAsync(actorid, 10).Wait();
        }
Exemple #2
0
        /// <summary>
        /// 事件溯源
        /// </summary>
        /// <param name="actorid"></param>
        /// <param name="sqliteProvider"></param>
        private static void CallEventSource(string actorid, SqliteProvider sqliteProvider)
        {
            var props  = Actor.FromProducer(() => new EventSourceDataActor(sqliteProvider, actorid));
            var pid    = Actor.Spawn(props);
            var result = true;

            while (result)
            {
                Console.WriteLine("1、Tell  2、删除持久化  3、退出");

                switch (Console.ReadLine())
                {
                case "1":
                    var random = new Random();
                    var no     = random.Next(5, 15);
                    Console.WriteLine($"随机产生的数字:{no}");
                    pid.Tell(new Data {
                        Amount = no
                    });
                    break;

                case "2":
                    //完成处理后清理持久化的操作
                    sqliteProvider.DeleteEventsAsync(actorid, 100).Wait();
                    break;

                case "3":
                    result = false;
                    break;
                }
            }
        }