示例#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();
        }