【DevOps】在GitLab利用CICD部署.NetCore项目各步骤总结
前言
近日在一台新服务器上完成了公司项目演示环境的迁移,遂记录下大致步骤
步骤
Linux云服务器操作系统:CentOS8
1、搭建环境(安装以下所需环境,附各命令)(1)、.netcore-sdk1sudo dnf install dotnet-sdk-3.1
(2)、.netcore-runtime1sudo dnf install aspnetcore-runtime-3.1
(3)、nginx1sudo yum install -y nginx
(4)、nodejs1sudo yum module install nodejs
(5)、pm21sudo npm i -g pm2
至此环境搭建完成
2、由于发现新服务器安全组未开启80、443端口,故开启
3、设置全局环境变量vim /etc/profile最后一行加入export ASPNETCORE_ENVIRONMENT=Stagingsource /etc/profile
4、在根目录准备好前后台所需文件夹mkdir /roo ...
【Dapper】关于使用DynamicParameters构建动态参数查询
前言
最近因单纯使用EFCore已经不能够满足业务的需求,经领导们的讨论决定:引入Dapper,形成EFCore+Dapper的组合。其中关于使用DynamicParameters构建动态参数查询做个小小的记录。
记录
一般的用法如下:
1234var sql = "SELECT * FROM TABLE WHERE NAME = @name";var params = new DynamicParameters();params.Add("@name", "LAM");var data = Connection.QueryAsync<TableVo>(sql, param);
模糊查询的方式稍微有点不同,百分号也应该算到值里,如下:
1234var sql = "SELECT * FROM TABLE WHERE NAME LIKE @name"var ...
【JPush】关于极光推送安卓端在APP卸载重装后依旧能收到推送的问题
前言
最近在使用极光推送的时候,碰到个问题:当在服务端利用极光推送SDK根据RegId在用户登录时给本机安装的这个APP绑定别名(Alias)别名以后,在未登录的情况下将APP卸载后重装,此时用户重新打开APP,在未登录状态下还是可以收到卸载重装前登录的用户对应的推送消息。不太符合常规的业务需求。
解析问题
造成这个问题的大致原因是:在安装端的APP即使卸载重装,极光服务器里对应的RegId也是不会改变的。换言之就是在之前用户登录时绑定的别名依旧生效,服务端无法通过某一节点,比如用户卸载APP时去解绑其关联,从而导致APP依旧会接收到推送。
解决方法
当下个人认为比较好的解决方法大致如下:
1、与前端约定别名规则,绑定别名的操作交给客户端处理;(1)、交予前端处理的好处在于,前端可以在未登录时初始化这台设备的别名为””;(2)、据说APP卸载时相当于应用被清理,那个相应的绑定也会被清理(感觉(1)比较靠谱);
2、服务端只负责通过约定的别 ...
【EF Core】EF Core通过SQL语句复杂排序后获取Row_Number
前言
在解决本文提到的问题之前,对SQL中的Row_Number概念还不是很强,在此之后加深了一定的认识。
发现问题
最近碰到一个关于“通过复杂排序后,在页面下拉加载数据时,需使用瀑布流的方式来规避原始分页可能出现重复数据的情况”的需求。此需求有以下关键点:
复杂排序
下拉通过瀑布流方式加载数据
根据上述关键点,此时就会衍生出两个很重要的问题。当下拉到页面最下方时,最后一条数据到底该如何定位?且以哪个字段作为关键字段去获取后续的数据
解决问题
于是带着问题寻求公司大佬的帮助,在一番讨论过后,在公司大佬的建议下,最后决定定位最后一条数据的关键字段使用Row_Number,但是Google、Baidu了一轮后发现EF Core并无支持排序后获取Row_Number的方法,在不得已的情况下只能通过编写SQL语句在排序之后去获取Row_Number。(PS:虽在Google上发现了thinktect ...