首页 > 其他分享 >多Key切换项目二

多Key切换项目二

时间:2022-11-29 14:11:44浏览次数:37  
标签:info 项目 加入 切换 Key var data LifeCycle

前言

好久没更新博客了,最近一段时间休整了一下。

本周进度

项目情况

我们将约束接口IMultipleKeyEntity改为基类MultipleKeyEntity并加入了统一的属性来规范默认库和SQLServer的实体类型,并加入了可以开始使用日期和结束使用日期,来对非当前可使用日期的数据进行排除,这样可以保留历史记录.

加入生命周期LifeCycle支持非循环key和日、月、年的循环key来满足业务需要,通过BackgroundService来做了个定时任务,目前还没有加入慕等所以只能设置为24小时循环一次.

   return Task.Delay(86400000, stoppingToken).ContinueWith(
                t =>
                {
                    using var scope = _serviceProvider.CreateScope();
                    var multipleKeysProvider = scope.ServiceProvider.GetService<IMultipleKeysProvider<MultipleKeyEntity>>();
                    multipleKeysProvider?.TimingUpdateMultipleKeys();

                    ExecuteAsync(stoppingToken);
                }, stoppingToken);  

SQLServer这里添加数据的时候有一个重复操作,应该会在下一次更新中完善实体得到解决

 // todo 
                        var data = (MultipleKeyEntity)value.Data.Clone();
                        data.UpdateLifeCycle(DateTime.Today.AddDays(1), value.LifeCycle);

                        var info = new SqlServerMultipleKeyInfo(data.LifeCycle,data.Maximum)
                        {
                            KeyName = data.GetType().Name,
                            Data = data,
                        };
                        info.UpdateLifeCycle(DateTime.Today.AddDays(1), value.LifeCycle);
                        _context.MultipleKeyInfo.Add(info);

另外打包后的项目生成的迁移文件需要指定程序集名称这里使用要注意.

builder.Services.AddDbContext<SqlServerMultipleKeyContext>(o => o.UseSqlServer(
                @"Server=(localdb)\mssqllocaldb;Database=SwitchingMultipleKeys;Trusted_Connection=True",
                b => b.MigrationsAssembly("Test_MultipleKets")
));

下一步的计划是先简单修复下问题,然后开始着手UI部分,然后加入Redis版本来增强库的使用。

最终结果

仓库在下面大家可以看看https://github.com/MrChuJiu/SwitchingMultipleKeys

结语

然后就是这个文章的目的,因为这个项目思路上比较清晰,而且项目解决的问题又是常见问题,所以这里主要想和各位道友一起做,

有想加入的朋友可以直接 pull 下来,然后提pr、issues然后一起来做, 需要我帮助的朋友也可以群里直接联系我。

当然目前感觉并不会有多少人真的参与进来,不过项目确实是个好项目,希望能给参与到的人简历加上一分。

另外我会根据这个标题更新项目进度和参与人,希望大家持续关注

标签:info,项目,加入,切换,Key,var,data,LifeCycle
From: https://www.cnblogs.com/MrChuJiu/p/16935234.html

相关文章

  • KubeSphere 社区双周报 | KubeKey v3.0.2 发布 | 2022-11-24
    KubeSphere从诞生的第一天起便秉持着开源、开放的理念,并且以社区的方式成长,如今KubeSphere已经成为全球最受欢迎的开源容器平台之一。这些都离不开社区小伙伴的共同努力......
  • 项目中elementui时间线的使用~✔✔
    Vue项目项目中经常会遇到事件线的功能Timeline,比如说快递跟踪功能等。element.js时间线的使用,先来看效果图是因为element2.6.0之前的版本不支持时间线组件了。所有下载......
  • SpringBoot 实际项目开发中工厂模式的巧妙使用
    简单工厂模式:     简单工厂模式是创建型模式,创建型模式顾名思义,也就是说在创建对象的时候,遇到了瓶颈才会选择的设计模式。那么该什么情况使用呢。  简单工厂模式......
  • mybatis SelectKey标签执行原理
    SelectKey标签在mybatis中可以配置成在主sql执行之前和执行之后两种时机进行执行。mybatis执行sql时一次会涉及到这些对象sqlSession-->Executor-->StatementHandler其......
  • 我的书《ASP.NET Core技术内幕与项目实战》早就出版了
    我的“新”书《ASP.NETCore技术内幕与项目实战》已经在7月份就出版了,不过恰逢我这几个月一直很忙,所以一直没宣传,特别是这个公众号我都没发过一次。就把这次当成一个正式的......
  • 我开发的开源项目,让.NET7中的EFCore更轻松地使用强类型Id
    在领域驱动设计(DDD)中,有一个非常重要的概念:“强类型Id”。使用强类型Id来做标识属性的类型会比用int、Guid等通用类型能带来更多的好处。比如有一个根据根据Id删除用户的方......
  • QQ浏览器如何关闭鼠标滚轮切换tab
    1、打开设置的页面  2、  改为不选中即可......
  • 盘点12个 yyds 的低代码开源项目
    低代码是基于可视化和模型驱动理念,结合云原生与多端体验技术,它能够在多数业务场景下实现大幅度的提效降本,为专业开发者提供了一种全新的高生产力开发范式。下面就来分......
  • IntelliJ idea下的项目结构
    IntelliJIDEA的project和module是啥关系?使用基于IntelliJ的IDE,如phpstorm、androidstudio都会对 project 和 module 的关系比较糊涂,简单的概括如下:IntelliJ系......
  • 新建项目关联远程仓库
    通过vuecli3创建项目vuecreatemall 新建远程仓库     终端中执行命令[email protected]:xxx/mall.gitgitpush-uoriginm......