Exemple #1
0
        private static void InitSystem(int port)
        {
            var serverOptions = (new RpcServerOptions())
                                .UsingIPAddress("127.0.0.1")
                                .UsingPort(port);

            var manager = new RpcManager(serverOptions);

            manager.Start();

            var systemOptions = ActorSystemOptions
                                .UsingName("system-2")
                                .UsingErrorHandler(
                (actorSys, error) => { Console.WriteLine(error); },
                (actorSys, process, msg, error) => {
                Console.WriteLine(error);
            });

            var actorSystem = ActorSystem.GetOrAdd(systemOptions);

            manager.Bind(actorSystem);

            var remoteActorOptions = ActorOptions
                                     .UsingName("system-1-actor-1")
                                     .UsingRemoteActorSystem("system-1")
                                     .UsingRemoteEndPoint("127.0.0.1", 17777);

            actorSystem.FromRemote(remoteActorOptions);
        }
Exemple #2
0
 public RemoteProcess(string name, ActorSystem actorSystem,
                      RemoteAddress remoteAddress, ActorOptions options)
     : base(name, actorSystem, null, options)
 {
     _remoteAddress = remoteAddress;
     _actor         = this;
 }
Exemple #3
0
        private static void RunRemoteSystem()
        {
            var serverOptions = (new RpcServerOptions())
                                .UsingIPAddress("127.0.0.1")
                                .UsingPort(remotePort);

            var manager = new RpcManager(serverOptions);

            manager.Start();

            var systemOptions = ActorSystemOptions
                                .UsingName(remoteSystem)
                                .UsingErrorHandler(
                (actorSys, error) => { Console.WriteLine(error); },
                (actorSys, process, msg, error) => { Console.WriteLine(error); });

            var actorSystem = ActorSystem.GetOrAdd(systemOptions);

            manager.Bind(actorSystem);

            var actorOptions = ActorOptions
                               .UsingName(remoteActor);

            var Completed = Task.FromResult(0);

            var sw = new Stopwatch();

            var pid = actorSystem.FromFunction((ctx, message) => {
                var count = Interlocked.Increment(ref counter);

                if (count == 1)
                {
                    sw.Restart();
                }
                else
                {
                    if (count % 1000 == 0)
                    {
                        Console.WriteLine(count);
                    }

                    if (count == loop)
                    {
                        Interlocked.Exchange(ref counter, 0);

                        sw.Stop();
                        Console.WriteLine("Ellapsed time: " + sw.ElapsedMilliseconds);
                        Console.WriteLine("Concurrency: " + (loop * 1000 / sw.ElapsedMilliseconds) + " call per sec");
                    }
                }

                if (message.MessageType == MessageType.FutureMessage)
                {
                    ctx.RespondTo(message, "world " + count.ToString("000000"));
                }

                return(Completed);
            },
                                               actorOptions);
        }
Exemple #4
0
 public FunctionCallProcess(string name, ActorSystem actorSystem,
                            Func <IContext, IMessage, Task> function, ActorOptions options)
     : base(name, actorSystem, null, options)
 {
     _receiveFunc = function;
     Actor        = this;
 }
        public FundingCalcManager(ILogger logger, IActorsHelper actorsHelper, ActorOptions actorOptions,
                                  ServiceProxyFactory serviceProxyFactory, DataServiceOptions dataServiceOptions)
        {
            var context = FabricRuntime.GetActivationContext();

            _logger       = logger;
            _actorsHelper = actorsHelper;
            _albActorUri  =
                new Uri($"{context.ApplicationName}/{actorOptions.ALBActorName}");

            _validationResultsServiceUri =
                new Uri(
                    $"{context.ApplicationName}/{dataServiceOptions.ValidationResultsServiceName}");

            _serviceProxyFactory = serviceProxyFactory;
        }