Example #1
0
        private async Task bootstrap()
        {
            // Build up the message handlers
            await Handlers.Compiling;

            Handlers.Compile(Options.Advanced.CodeGeneration, _container);

            // If set, use pre-generated message handlers for quicker starts
            if (Options.Advanced.CodeGeneration.TypeLoadMode == TypeLoadMode.LoadFromPreBuiltAssembly)
            {
                await _container.GetInstance <DynamicCodeBuilder>().LoadPrebuiltTypes();
            }


            // Start all the listeners and senders
            Runtime.As <TransportRuntime>().Initialize();

            ScheduledJobs =
                new InMemoryScheduledJobProcessor((IWorkerQueue)Runtime.AgentForLocalQueue(TransportConstants.Replies));

            switch (Settings.StorageProvisioning)
            {
            case StorageProvisioning.Rebuild:
                Persistence.Admin.RebuildSchemaObjects();
                break;

            case StorageProvisioning.Clear:
                Persistence.Admin.ClearAllPersistedEnvelopes();
                break;
            }

            await startDurabilityAgent();
        }
        public LightweightWorkerQueue(Endpoint endpoint, ITransportLogger logger,
                                      IHandlerPipeline pipeline, AdvancedSettings settings)
        {
            _logger   = logger;
            _settings = settings;
            Pipeline  = pipeline;

            _scheduler = new InMemoryScheduledJobProcessor(this);

            endpoint.ExecutionOptions.CancellationToken = settings.Cancellation;

            _receiver = new ActionBlock <Envelope>(async envelope =>
            {
                try
                {
                    if (envelope.ContentType.IsEmpty())
                    {
                        envelope.ContentType = "application/json";
                    }

                    await Pipeline.Invoke(envelope);
                }
                catch (Exception e)
                {
                    // This *should* never happen, but of course it will
                    logger.LogException(e);
                }
            }, endpoint.ExecutionOptions);
        }
Example #3
0
        public WorkerQueue(IMessageLogger logger, IHandlerPipeline pipeline, MessagingSettings settings)
        {
            _logger            = logger;
            Pipeline           = pipeline;
            _settings          = settings;
            _cancellationToken = _settings.Cancellation;

            foreach (var worker in Pipeline.Workers.AllWorkers)
            {
                AddQueue(worker.Name, worker.Parallelization);
            }

            ScheduledJobs = new InMemoryScheduledJobProcessor(this);
        }
Example #4
0
        public WorkerQueue(CompositeMessageLogger logger, IHandlerPipeline pipeline, BusSettings settings, CancellationToken cancellationToken)
        {
            _logger            = logger;
            _pipeline          = pipeline;
            _settings          = settings;
            _cancellationToken = cancellationToken;

            foreach (var worker in _settings.Workers.AllWorkers)
            {
                AddQueue(worker.Name, worker.Parallelization);
            }

            ScheduledJobs = InMemoryScheduledJobProcessor.ForQueue(this);
        }
Example #5
0
        public MessagingRoot(
            ObjectPoolProvider pooling,
            BusSettings settings,
            HandlerGraph handlers,
            Forwarders forwarders,
            IPersistence persistence,
            IChannelGraph channels,
            ISubscriptionsRepository subscriptions,
            IEnumerable <ISerializerFactory> serializers,
            IEnumerable <IMessageDeserializer> readers,
            IEnumerable <IMessageSerializer> writers,
            IMessageLogger[] loggers,
            ITransport[] transports,
            IEnumerable <IMissingHandler> missingHandlers,
            IEnumerable <IUriLookup> lookups)
        {
            _settings    = settings;
            _handlers    = handlers;
            _replies     = new ReplyWatcher();
            _persistence = persistence;
            _channels    = channels;
            _transports  = transports;



            Lookup = new UriAliasLookup(lookups);


            Serialization = new BusMessageSerializationGraph(pooling, settings, handlers, forwarders, serializers,
                                                             readers, writers);

            Logger = new CompositeMessageLogger(loggers);

            Pipeline = new HandlerPipeline(Serialization, handlers, _replies, Logger, missingHandlers,
                                           new Lazy <IServiceBus>(Build));

            Workers = new WorkerQueue(Logger, Pipeline, settings);

            Router = new MessageRouter(Serialization, channels, subscriptions, handlers, Logger, Lookup, settings);

            ScheduledJobs = new InMemoryScheduledJobProcessor();
        }
 public override void SetUp()
 {
     theScheduledJobs = new InMemoryScheduledJobProcessor(this);
     sent.Clear();
     _callbacks.Clear();
 }
Example #7
0
 public NulloPersistence(CompositeTransportLogger logger, BusSettings settings)
 {
     _logger        = logger;
     _settings      = settings;
     _scheduledJobs = new InMemoryScheduledJobProcessor();
 }
Example #8
0
 public InMemoryScheduledJobProcessorTests()
 {
     theScheduledJobs = new InMemoryScheduledJobProcessor(this);
 }
Example #9
0
 public in_memory_scheduled_jobs()
 {
     theScheduledJobs = InMemoryScheduledJobProcessor.ForQueue(this);
 }
 public in_memory_scheduled_jobs()
 {
     theScheduledJobs = new InMemoryScheduledJobProcessor(this);
 }
Example #11
0
 public NulloEnvelopePersistence(IWorkerQueue worker)
 {
     _worker       = worker;
     ScheduledJobs = new InMemoryScheduledJobProcessor(worker);
 }