public MainModule() { Get["/"] = x => { var repo = new PersonRepository(); var persons = repo.GetAll(); return(Response.AsJson(persons)); }; //Post["/"] = x => //{ // var person = this.Bind<Person>(); // var repo = new PersonRepository(); // if (!repo.Exists(person.Name)) // { // Console.WriteLine("Person with name {0} was added", person.Name); // repo.Add(person); // } // else // { // Console.WriteLine("Person with name {0} already exists", person.Name); // } // return (Response)"OK"; //}; Post["/", true] = async(x, ct) => { var person = this.Bind <Person>(); var envelope = new ConsistentHashableEnvelope(person, person.Name); var result = await AkkaUtil.PersonPostActor.Ask <string>(envelope); return((Response)result); }; }
private static void WithHashPool() { var builder = new ContainerBuilder(); builder.RegisterType <TypedWorker>(); var container = builder.Build(); using (var system = ActorSystem.Create("MySystem")) { var propsResolver = new AutoFacDependencyResolver(container, system); var router = system.ActorOf(propsResolver.Create <TypedWorker>().WithRouter(FromConfig.Instance), "router1"); Task.Delay(500).Wait(); Console.WriteLine("Sending Messages"); for (var i = 0; i < 5; i++) { for (var j = 0; j < 7; j++) { var msg = new TypedActorMessage { Id = j, Name = Guid.NewGuid().ToString() }; var ms = new AnotherMessage { Id = j, Name = msg.Name }; var envelope = new ConsistentHashableEnvelope(ms, msg.Id); router.Tell(msg); router.Tell(envelope); } } Console.WriteLine("Hit Enter to close"); Console.ReadLine(); } }
internal override async ValueTask InternalSend(IMessage <T> message) { switch (State.ConnectionState) { case HandlerState.State.Ready: case HandlerState.State.Connecting: break; // Ok case HandlerState.State.Closing: case HandlerState.State.Closed: Sender.Tell(new PulsarClientException.AlreadyClosedException("Producer already closed")); return; case HandlerState.State.Terminated: Sender.Tell(new PulsarClientException.TopicTerminatedException("Topic was terminated")); return; case HandlerState.State.ProducerFenced: Sender.Tell(new PulsarClientException.ProducerFencedException("Producer was fenced")); return; case HandlerState.State.Failed: case HandlerState.State.Uninitialized: Sender.Tell(new PulsarClientException.NotConnectedException()); return; } if (Conf.MessageRoutingMode == MessageRoutingMode.ConsistentHashingMode) { var msg = new ConsistentHashableEnvelope(new InternalSend <T>(message), message.Key); _router.Tell(msg, Sender); } else { _router.Tell(new InternalSend <T>(message), Sender); } await Task.CompletedTask; }
private static void WithHashPool() { Ninject.IKernel container = new Ninject.StandardKernel(); container.Bind <TypedWorker>().To(typeof(TypedWorker)); using (var system = ActorSystem.Create("MySystem")) { var propsResolver = new NinjectDependencyResolver(container, system); var router = system.ActorOf(propsResolver.Create <TypedWorker>().WithRouter(FromConfig.Instance), "router1"); Task.Delay(500).Wait(); Console.WriteLine("Sending Messages"); for (var i = 0; i < 5; i++) { for (var j = 0; j < 7; j++) { var msg = new TypedActorMessage { Id = j, Name = Guid.NewGuid().ToString() }; var ms = new AnotherMessage { Id = j, Name = msg.Name }; var envelope = new ConsistentHashableEnvelope(ms, msg.Id); router.Tell(msg); router.Tell(envelope); } } } Console.ReadLine(); }
private static void WithHashPool() { using (var system = ActorSystem.Create("MySystem")) { IWindsorContainer container = new WindsorContainer(); container.Register(Component.For <TypedWorker>().Named("TypedWorker").LifestyleTransient()); var propsResolver = new WindsorDependencyResolver(container, system); var router = system.ActorOf(system.DI().Props <TypedWorker>().WithRouter(FromConfig.Instance), "router1"); Task.Delay(500).Wait(); Console.WriteLine("Sending Messages"); for (var i = 0; i < 5; i++) { for (var j = 0; j < 7; j++) { var msg = new TypedActorMessage { Id = j, Name = Guid.NewGuid().ToString() }; var ms = new AnotherMessage { Id = j, Name = msg.Name }; var envelope = new ConsistentHashableEnvelope(ms, msg.Id); router.Tell(msg); router.Tell(envelope); } } Console.WriteLine("Hit Enter to exit"); Console.ReadLine(); } }
private void InternalSendWithTxn(IMessage <T> message, IActorRef txn) { switch (State.ConnectionState) { case HandlerState.State.Ready: case HandlerState.State.Connecting: break; // Ok case HandlerState.State.Closing: case HandlerState.State.Closed: Sender.Tell(new PulsarClientException.AlreadyClosedException("Producer already closed")); return; case HandlerState.State.Terminated: Sender.Tell(new PulsarClientException.TopicTerminatedException("Topic was terminated")); return; case HandlerState.State.ProducerFenced: Sender.Tell(new PulsarClientException.ProducerFencedException("Producer was fenced")); return; case HandlerState.State.Failed: case HandlerState.State.Uninitialized: Sender.Tell(new PulsarClientException.NotConnectedException()); return; } if (Conf.MessageRoutingMode == MessageRoutingMode.ConsistentHashingMode) { var msg = new ConsistentHashableEnvelope(new InternalSendWithTxn <T>(message, txn), message.Key); _router.Tell(msg, Sender); } else { _router.Tell(new InternalSendWithTxn <T>(message, txn), Sender); } }