public void TriggerFinalized(ITrigger trigger)
 {
     try
     {
         if (trigger is ISimpleTrigger)
         {
             ElasticsearchRepository.Delete <SimpleTrigger>(trigger.Key.Name);
         }
     }
     catch (Exception exception)
     {
         Log.Error("Error deleting simple trigger.", exception);
     }
 }
Exemple #2
0
        static async Task Main(string[] args)
        {
            var settings = new ConnectionSettings(new Uri("http://localhost:9200"))
                           .DefaultMappingFor <ShowDocument>(m => m
                                                             .IndexName("shows")
                                                             )
                           .DefaultMappingFor <ActDocument>(m => m
                                                            .IndexName("acts")
                                                            )
                           .DefaultMappingFor <VenueDocument>(m => m
                                                              .IndexName("venues")
                                                              );
            var elasticClient           = new ElasticClient(settings);
            var elasticsearchRepository = new ElasticsearchRepository(elasticClient);
            var actUpdater                     = new ActUpdater(elasticsearchRepository);
            var venueUpdater                   = new VenueUpdater(elasticsearchRepository);
            var showAddedHandler               = new ShowAddedHandler(elasticsearchRepository, actUpdater, venueUpdater);
            var actDescriptionChangedHandler   = new ActDescriptionChangedHandler(elasticsearchRepository, actUpdater);
            var venueDescriptionChangedHandler = new VenueDescriptionChangedHandler(elasticsearchRepository, venueUpdater);
            var venueLocationChangedHandler    = new VenueLocationChangedHandler(elasticsearchRepository, venueUpdater);

            var bus = Bus.Factory.CreateUsingRabbitMq(busConfig =>
            {
                busConfig.Host("rabbitmq://localhost");
                busConfig.ReceiveEndpoint("GloboTicket.Indexer", endpointConfig =>
                {
                    endpointConfig.UseMessageRetry(r => r.Exponential(
                                                       retryLimit: 5,
                                                       minInterval: TimeSpan.FromSeconds(5),
                                                       maxInterval: TimeSpan.FromSeconds(30),
                                                       intervalDelta: TimeSpan.FromSeconds(5)));

                    endpointConfig.Handler <ShowAdded>(async context =>
                                                       await showAddedHandler.Handle(context.Message));
                    endpointConfig.Handler <ActDescriptionChanged>(async context =>
                                                                   await actDescriptionChangedHandler.Handle(context.Message));
                    endpointConfig.Handler <VenueDescriptionChanged>(async context =>
                                                                     await venueDescriptionChangedHandler.Handle(context.Message));
                    endpointConfig.Handler <VenueLocationChanged>(async context =>
                                                                  await venueLocationChangedHandler.Handle(context.Message));
                });
            });

            await bus.StartAsync();

            Console.WriteLine("Receiving messages. Press a key to stop.");
            await Task.Run(() => Console.ReadKey());

            await bus.StopAsync();
        }