示例#1
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddLogging(logging =>
            {
                logging.AddFilter("Microsoft", LogLevel.None);
                logging.AddFilter("Microsoft.Hosting.Lifetime", LogLevel.Information);
            });

            // ::: get from config file
            var topicFactory = new FileTopicFactory(new TopicFactoryOptions
            {
                DirectoryPath = @"C:\temp\storage",
                PersistentStorageFileLengthThreshold           = 100 * 1024 * 1024,
                SubscriptionPointersStorageFileLengthThreshold = 10 * 1024 * 1024,
                TopicOptions = new TopicOptions
                {
                    PersistenceIntervalMilliseconds = 100,
                    PersistenceMaxFails             = 100,
                    CleanupMaxFails = 10000,
                    SubscriptionPointersFlushMaxFails = 500,
                    DataArrayOptions = new InfiniteArrayOptions
                    {
                        BlockLength       = 100000,
                        DataListCapacity  = 128,
                        MinimumFreeBlocks = 20
                    }
                }
            });

            var topicsConfigStorage = new TopicsConfigurationFileStorage(new TopicsConfigurationFileStorageOptions
            {
                ConfigurationFile = @"C:\temp\storage\Topics.json"
            });

            var server = new Core.Server(topicFactory, topicsConfigStorage);

            services.AddSingleton <IServer>(server);

            services.AddSingleton <FastQueueServiceImpl>();
            services.AddHostedService <FastQueueCoreServer>();

            services.AddGrpc();
        }
示例#2
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddLogging(logging =>
            {
                logging.AddFilter("Microsoft", LogLevel.None);
                logging.AddFilter("Microsoft.Hosting.Lifetime", LogLevel.Information);
            });

            var fastQueueConfiguration = FastQueueConfiguration.Read(configuration);

            var topicFactory        = new FileTopicFactory(fastQueueConfiguration.TopicFactoryOptions);
            var topicsConfigStorage = new TopicsConfigurationFileStorage(fastQueueConfiguration.TopicsConfigurationFileStorageOptions);

            var server = new Core.Server(topicFactory, topicsConfigStorage);

            services.AddSingleton <IServer>(server);

            services.AddSingleton <FastQueueServiceImpl>();
            services.AddHostedService <FastQueueCoreServer>();

            services.AddGrpc();
        }