Quartz.net 是一个功能强大的用于调度任务的开源库,它允许你在指定的时间点或时间间隔触发任务。它被广泛用于 .NET 平台中的任务调度和定时任务管理。Quartz.net 提供了丰富的功能和灵活的调度选项,可以用于各种场景,如定时执行任务、后台作业、定时发送邮件等。

Quartz.net 的主要作用是在指定的时间点或时间间隔执行任务。它允许你创建定时任务,根据特定的触发条件来调度任务,以及管理任务的状态、暂停和恢复任务等。
C#中的IDGen是一个非常实用的C#实现的Twitter Snowflake算法的ID生成器,它能够为C#应用程序提供高效、全局唯一的ID生成功能,特别是在高并发场景下,这个功能尤为重要。
Twitter Snowflake算法是一种非常棒的方法,用于生成全世界独一无二的ID。它基于当前时间和机器时钟的微秒级别差异,可以保证在1亿年内生成的ID都是独一无二的。这个算法非常适合在高并发的场景下使用,因为它能够避免出现ID冲突,从而提高系统的性能和稳定性。
在C#中,IDGen就是一个基于Twitter Snowflake算法实现的ID生成器。它的主要作用是为C#应用程序生成全局唯一的ID,可以通过简单的调用来实现。与其他ID生成器相比,IDGen具有以下优点:
nuget 安装 IDGen库

在C#中,TaskScheduler是一种非常有用的功能,它允许您在指定的时间或间隔内执行任务。TaskScheduler是一个抽象类,它提供了一个通用的方法来计划和执行任务。您可以使用TaskScheduler来调度多个任务,并且在多线程环境中控制它们的执行。
写一个继承TaskScheduler的类
C#public class MyScheduler : TaskScheduler
{
protected override void QueueTask(Task task)
{
// 将任务排队到线程池中
ThreadPool.QueueUserWorkItem(_ => TryExecuteTask(task));
}
protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued)
{
// 如果当前线程是调度器的线程,则在当前线程内执行任务
if (taskWasPreviouslyQueued && Thread.CurrentThread.IsThreadPoolThread)
return TryExecuteTask(task);
return false;
}
protected override IEnumerable<Task> GetScheduledTasks()
{
// 此方法用于调度器的内部追踪,不要求实现
return Enumerable.Empty<Task>();
}
}
Remote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
Redis 官网:https://redis.io/
源码地址:https://github.com/redis/redis
Redis 在线测试:http://try.redis.io/
Redis 命令参考:http://doc.redisfans.com/
Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。
缓存是一种非常常见的性能优化技术,在开发过程中经常会用到。.NET提供了内置的内存缓存类 MemoryCache,它可以很方便地存储数据并在后续的请求中快速读取,从而提高应用程序的响应速度。
通过使用 Microsoft.Extensions.Caching.Memory,我们可以在 .NET Core 中轻松实现内存缓存功能,从而提高应用程序的性能和响应速度。在实际应用中,你可以根据具体需求来设置缓存的有效期和其他选项。
nuget 安装依赖 Microsoft.Extensions.Caching.Memory

一个简单例子