Пример #1
0
        public override void ConfigureServices(ServiceConfigurationContext context)
        {
            //配置多租户扩展方法
            context.ConfigureMultiTenant();

            // 分布式缓存
            Configure <AbpDistributedCacheOptions>(options =>
            {
                // 设置key前缀
                options.KeyPrefix = "key";
                // 启用/禁用隐藏从缓存服务器写入/读取值时的错误。
                options.HideErrors = true;
                // 设置缓存储存时间  改配置不能控制 IDistributedCache
                var a = DateTime.Now;
                var b = a + new TimeSpan(0, 0, 5);
                options.GlobalCacheEntryOptions = new DistributedCacheEntryOptions
                {
                    // 多久不访问后删除
                    // SlidingExpiration = new TimeSpan(0,0,3),
                    // 到达固定时间后删除
                    // AbsoluteExpiration = new DateTimeOffset(b),
                    // 创建后到达固定时间删除
                    AbsoluteExpirationRelativeToNow = new TimeSpan(0, 0, 0, 5)
                };
            });

            // 后台作业
            Configure <AbpBackgroundJobOptions>(options =>
            {
                options.IsJobExecutionEnabled = true; // false 禁用作业执行
            });

            // 如果你在集群环境中运行同时运行应用程序的多个实现,
            // 这种情况下要小心,每个应用程序都运行相同的后台工作者,
            // 如果你的工作者在相同的资源上运行(例如处理相同的数据),那么可能会产生冲突.
            // 1、 禁用其他的后台工作者系统,只保留一个实例
            // 2、 所有的应用程序都禁用后台工作者系统,创建一个特殊的应用程序在一个服务上运行执行工作者
            Configure <AbpBackgroundWorkerOptions>(options =>
            {
                options.IsEnabled = false; // false 禁用后台工作者
            });

            // 注册一个singleton实例
            // IWorker 已经通道继承 ISingletonDependency 实现依赖注入
            // context.Services.AddSingleton<IWorker,Worker>();
        }