/// <summary> /// /// </summary> /// <returns></returns> private bool TryStartGrpc() { try { // create settings. GrpcClientSettings settings = new GrpcClientSettings(); settings.MarshallerFactory = GrpcMarshallerFactory.DefaultInstance; settings.PerformanceListener = new GrpcClientPerformanceListener(); RegistPerformanceEventHandlers(settings.PerformanceListener); // create client. ChannelCredentials credential = ChannelCredentials.Insecure; m_Channel = new Channel(string.Format("{0}:{1}", m_Settings.ServerName, m_Settings.ServerPort), credential); GrpcCallInvoker invoker = GrpcCallInvoker.Create(m_Channel, settings); //TestMethodInterceptor interceptor = new TestMethodInterceptor(); //m_Invoker.AddInvokingInterceptor(interceptor); //m_Invoker.AddInvokedInterceptor(interceptor); //m_Invoker.AddExceptionHandler(interceptor); m_Client = new PlayerSearch.PlayerSearchClient(invoker); m_HeartbeatContext = GrpcHeartbeat.CreateClientObject(m_Channel); return(true); } catch (Exception ex) { MessageBox.Show(ex.Message); return(false); } }
static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder() .UseSerilog((host, log) => { string appBin = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); log.MinimumLevel.Information(); log.MinimumLevel.Override("Microsoft", LogEventLevel.Warning); log.WriteTo.File($"{appBin}/log/log-{DateTime.Now:yyMMdd_HHmmss}.txt"); log.WriteTo.Console(LogEventLevel.Debug); }) .ConfigureAppConfiguration((host, config) => { config.Sources.Clear(); config.AddJsonFile("appsettings.json", false); }) .ConfigureServices((host, services) => { services.AddSingleton <IGrpcClient <ICourierDispatcher>, CourierDispatcherClient>(); services.AddSingleton(x => { var config = new GrpcClientSettings(); host.Configuration.Bind("Grpc", config); return(config); }); services.AddSingleton(x => { var config = new RabbitMqTransportSettings(); host.Configuration.Bind("RabbitMqTransport", config); return(config); }); services.AddSingleton(x => { var config = new CourierServiceSettings(); host.Configuration.Bind("Application", config); return(config); }); services.AddMassTransit(x => { x.SetKebabCaseEndpointNameFormatter(); x.AddConsumer(typeof(DispatchConsumer), typeof(DispatchConsumerDefinition)); x.AddConsumer(typeof(DispatchConfirmationConsumer), typeof(DispatchConfirmationConsumerDefinition)); x.AddConsumer(typeof(OrderDeliveryConsumer), typeof(OrderDeliveryConsumerDefinition)); x.AddConsumer(typeof(PickUpOrderConsumer), typeof(PickUpOrderConsumerDefinition)); x.AddConsumer(typeof(EnRouteToRestaurantConsumer), typeof(EnRouteToRestaurantConsumerDefinition)); x.AddConsumer(typeof(DispatchDeclinedConsumer), typeof(DispatchDeclinedConsumerDefinition)); x.AddConsumer(typeof(EnRouteToCustomerConsumer), typeof(EnRouteToCustomerConsumerDefinition)); x.AddConsumer(typeof(DispatchIdentificationConsumer), typeof(DispatchIdentificationConsumerDefinition)); x.AddConsumer(typeof(DispatchCancellationConsumer), typeof(DispatchCancellationConsumerDefinition)); x.AddSagaStateMachine(typeof(CourierStateMachine), typeof(CourierStateDefinition)); Uri schedulerEndpoint = new Uri("queue:quartz"); x.AddMessageScheduler(schedulerEndpoint); x.UsingRabbitMq((context, cfg) => { var settings = context.GetService <RabbitMqTransportSettings>(); cfg.Host(settings.Host, settings.VirtualHost, h => { h.Username(settings.Username); h.Password(settings.Password); }); cfg.UseMessageScheduler(schedulerEndpoint); cfg.ConfigureEndpoints(context); // cfg.UseMessageRetry(x => x.SetRetryPolicy(new RetryPolicyFactory())); }); x.AddSagaStateMachine <CourierStateMachine, CourierState>() .EntityFrameworkRepository(r => { r.ConcurrencyMode = ConcurrencyMode.Optimistic; r.AddDbContext <DbContext, CourierServiceDbContext>((provider, builder) => { builder.UseNpgsql(host.Configuration.GetConnectionString("OrdersConnection"), m => { m.MigrationsAssembly(Assembly.GetExecutingAssembly().GetName().Name); m.MigrationsHistoryTable($"__{nameof(CourierServiceDbContext)}"); }); }); }); }); services.AddMassTransitHostedService(); });
public BaseGrpcClient(GrpcClientSettings settings) { _settings = settings; _channel = GrpcChannel.ForAddress(_settings.ClientUrl); }
public OrderProcessorClient(GrpcClientSettings settings) : base(settings) { }
public CourierDispatcherClient(GrpcClientSettings settings) : base(settings) { }