0%

Quartz 的失火指令 (MisFire)

有时,Quartz 无法在您需要的时间运行您的工作。 这有三个原因:

  • 所有工作线程都忙于运行其他作业(可能具有更高的优先级)
  • 调度程序本身已关闭
  • 该作业是在过去的开始时间安排的(可能是编码错误)
阅读全文 »

cron 是已存在很长时间的 UNIX 工具,因此其调度功能强大且经过验证。

cron 表达式是由 7 段构成:秒 分 时 日 月 星期 年(可选)

  • “*” 用于选择字段中的所有值,例如,在分钟字段中表示“每分钟”。
  • “?” 在需要在允许使用字符的两个字段之一中指定某些内容而在另一个不允许使用的字段中指定内容时很有用。例如,如果我希望触发器在每月的某个特定日期(例如 10 号)触发,但不在乎是星期几,则将其 10 输入“月日”字段,以及?“星期几”字段中。
  • “-” 用于指定范围。例如,10-12 在小时字段中表示“小时 10、11 和 12”。
阅读全文 »

Quartz 任务调度,用于布置一些定时任务

下载安装

两种方式:NuGet 包下载和下载 zip 压缩包手动安装

NuGet Package

没有比这更简单的了,只能说右手都行。只需要启动 Visual Studio(安装了 NuGet)并从包管理器扩展中添加对包 Quartz 的引用:

或者使用 NuGet 命令行执行

1
Install-Package Quartz
阅读全文 »

设计模式 - 自带的 IOC

Queryable 什么时候操作库

当 Queryable 类型变成非 Queryable 的时候我们会触发执行生成 Sql 操作或者执行数据库

1
2
//从 queryable 变成了 List 这个时候类型发生变化 已经生成了 SQL 或者执行了数据库
db.Queryable<Student>().ToList();
阅读全文 »

SqlSugar 联表查询

Join 用法

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
public IEnumerable<dynamic> GetAllUser()
{
//查询所有
return this.Context.Queryable<Users>()
.InnerJoin<Roles>((x, y) => x.RoleId == y.Id)
.Select((x, y) => new
{
Id = x.Id,
UserName = x.UserName,
Age = x.Age,
RoleName = y.RoleName
}).ToList();
}
阅读全文 »

最基础且最重要的 CRUD

这里只演示一个简单的 CRUD

具体靠自己深入了解

首先创建一个仓储

不了解仓储的小伙伴请看 SqlSugar-仓储官方文档

阅读全文 »

仓储可以让你的方法更加的规范,需要什么方法都封装到仓储中,下次就能重复使用,并且能很好的和你业务拆分开

这种设计模式简单粗暴用起来也方便

仓储方法

仓储有一套自带的数据库操作方法,比起 db.xx.xxx 来说可能更简便些满足一些常用需求,复杂的功能还是用 db.xxx.xxx

阅读全文 »

配置实体属性

使用自带特性

对于 CRUD 来说只需要配置主键和自增列就行了,如果类的名称和数据库不一样可以设置数据库中的名称

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 当和数据库名称不一样可以设置表别名 指定表明
[SugarTable("user_info")]
public class Users
{
// 数据库是自增才配自增
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }

// 数据库与实体不一样设置列名
[SugarColumn(ColumnName ="user_name")]
public string Name { get; set; }

public int? Age { get; set; }
}
阅读全文 »

SqlSugar 使用 IOC 有 2 种方式 ,2 种方式不能混用,用一种就可以了

SqlSugar.IOC

SqlSugar.IOC 用法简单,注入直接开箱就用

Nuget 安装 SqlSugar.Ioc 和 SqlSugarCore

.NET Core 3.0 + .NET 5

阅读全文 »