康老师

wa插件使用教程

2016-11-03 00:38:48

开源软件

1、Hangfire

Hangfire是一个开源框架,它帮助您创建、处理和管理后台作业。

功能特征:

支持基于队列的任务处理。 任务执行不是同步的,而是放到一个持久化队列中, 以便马上把请求控制权返回给调用者。 使用方法:

延迟任务(方法)执行。可以将方法的执行推迟一段指定的时间,而不是立即调用方法:

循环执行任务。只需简单的一行代码就可以添加重复执行的任务,其内置了常见的时间循环模式,也可以基于CRON表达式来设定复杂的模式。使用方法:

SQL Server 与 Redis 持久化支持。Hangfire使用持久性存储来存储作业、队列和统计信息,并让它们在应用程序重启后继续存在。存储子系统的抽象程度足以支持经典的SQL Server和快速的Redis。

SQLServer提供了简化的安装和常规的维护计划。

Redis提供了惊人的速度,尤其是与sqlserver相比,但需要更多的知识。

自动重试机制。如果你的方法遇到了一个暂时的异常,不用担心——它会在几秒钟内自动重试。如果所有重试尝试都已用尽,则可以从集成的web界面手动重新启动。还可以使用AutomaticRetryAttribute类控制重试行为。只需将其应用于您的方法,告诉Hangfire重试次数: [ AutomaticRetry(Attempts = 100) ] public static void GenerateStatistics ( ) { } BackgroundJob.Enqueue( => GenerateStatistics);

保证执行任务。Hangfire是在知道托管环境可以杀死每行上的所有线程的情况下制作的。因此,它在成功完成之前不会删除作业,并且包含不同的隐式重试逻辑以在其处理中止时执行该作业。

实例方法调用。Hangfire除了支持静态方法调用,还支持调用实例方法。当worker看到给定的方法是实例方法时,它将首先激活它的类。默认情况下,使用Activator.CreateInstance方法,因此默认情况下仅支持具有默认构造函数的类。但是您可以插入IoC容器并通过构造函数传递依赖项。

SQLServer提供了简化的安装和常规的维护计划。

Redis提供了惊人的速度,尤其是与sqlserver相比,但需要更多的知识。

文化捕捉。当您将方法调用编组到另一个执行上下文中时,您应该能够保留一些环境设置。他们中有些人-Thread.CurrentCulture以及Thread.CurrentUICulture将自动为您拍摄。PreserveCultureAttribute默认情况下,它由应用于所有方法的类完成。

支持任务取消。Hangfire可以告诉方法由于shutdown事件而被中止或取消,因此可以使用类似于常规CancellationToken类的作业取消令牌来优雅地停止它们。

支持IOC容器。目前支持Ninject和Autofac。

支持日志记录。Hangfire使用Common.Logging库来记录其所有事件。

友好的Web支持。可以在相同或不同的机器上运行多个 Hangfire 实例。它使用分布式锁定来防止竞争条件。每个 Hangfire 实例都是冗余的,可以无缝添加或删除实例(但要控制它们侦听的队列)。

支持多队列处理。同一个Hangfire实例可以支持多个队列,以便更好的控制任务的执行方式。

并发级别的控制。Hangfire使用自己的固定工作线程池来消耗排队的作业。默认工作进程计数设置为 Environment.ProcessorCount*5,即CPU数量的5倍。此数字针对CPU密集型和I/O密集型任务进行了优化。如果遇到过多的等待或上下文切换,可以手动配置工作进程的数量:

// orvarserver = newBackgroundJobServer( 100);

多环境处理任务。默认情况下,作业处理是在 ASP.NET 应用程序中进行的。但是您可以在控制台应用程序、Windows 服务或其他任何地方处理作业。

可扩展性。Hangfire 旨在尽可能通用。您可以扩展以下部分:

存储实现

状态子系统(包括创建新状态)

创造就业的过程

工作绩效流程

状态变化过程

工作激活过程

存储实现

状态子系统(包括创建新状态)

创造就业的过程

工作绩效流程

状态变化过程

工作激活过程

一些核心组件作为扩展:QueueAttribute、PreserveCultureAttribute、AutomaticRetryAttribute、SqlServerStorage、RedisStorage、NinjectJobActivator、AutofacJobActivator、ScheduledState。

官网:https://www.hangfire.io/

2、Quartz.NET

Quartz.NET是.NET平台下应用最早最广泛的老牌定时任务任务调度组件。它是一个功能齐全的开源作业调度系统,从小的应用程序到大型企业系统都可以使用。它可以与任何其他软件系统集成,也可以与任何其他软件系统一起使用。它提供了简单的操作,如调度/非调度作业、启动/停止/暂停调度程序等。

使用Quartz.NET可以定时轮询数据库同步、定时邮件通知、定时处理数据等。Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业。

.NET Framework 通过 System.Timers.timer 类具有“内置”计时器功能。为什么有人会使用Quartz而不是这些标准功能?

原因包括以下几个方面:

计时器没有持久性机制。

计时器的调度不灵活(只能设置开始时间和重复间隔,不能基于日期、时间等进行设置)。

计时器不使用线程池(每个计时器一个线程)。

计时器没有真正的管理方案——你必须编写自己的机制,以便能够记住、组织和按名称检索任务等。

对于一些简单的应用程序,这些功能可能并不重要,在这种情况下,不使用Quartz.NET可能是正确的决定。

官网:https://www.quartz-scheduler.net/

GitHub:https://github.com/quartznet/quartznet

3、ScheduleMaster

ScheduleMaster是一个开源的分布式任务调度系统,它基于.NET Core 3.1平台构建,支持跨平台多节点部署运行。

技术栈:

ASP.NET Core3.1、EntityFramework Core3.0、Mysql5.7、Quartz.Net、BeyondAdmin、Jquery...

展开全文

Gitee:https://gitee.com/hey-hoho/ScheduleMasterCore

4、 FluentScheduler

FluentSchedule 是.NET平台下的一款轻量级任务调度组件。接口丰富,功能强大,简单易容。官网提供的丰富示例,让开发者很容易上手。如果在项目中简单的设置定时任务,优先使用该组件。

官网:https://fluentscheduler.github.io/

GitHub:https://github.com/fluentscheduler/FluentScheduler

5、Timer类

Timer是.NET内置的定时器类,它位于命名空间 System.Timers 下。Timer是一个基于服务器端的计时器,提供了 Interval 属性来设置重复触发定时任务的间隔(单位为毫秒),触发事件则由 Elapsed 事件来指定。另外,还可以通过 AutoReset 属性来设置Timer的 Elapsed 事件只触发一次或者重复触发。

文档地址:https://docs.microsoft.com/en-us/dotnet/api/system.timers.timer?view=net-6.0

6、 Coravel

Coravel 是一个接近零配置的 .NET Core 库,使任务调度、缓存、队列、邮件、事件广播(等等)变得轻而易举!

文档地址是:https://docs.coravel.net/

使用方法:

注册服务

先在 ConfigureServices 方法里,配置服务

一般注册以上 3 个服务,其中第二个需要引入自己定义好的计划动作;

然后在管道里注入服务

继承接口,自定义服务 publicclassUpdateTrendJob: IInvocable{ privateInterfaces.IZmRobotHelper _zmRobotHelper; publicUpdateTrendJob( Interfaces.IZmRobotHelper zmRobotHelper) { _zmRobotHelper = zmRobotHelper; } ///<summary>///触发任务 ///固定格式,要把需要做的事情放到Invoke里 ///</summary>///<returns></returns>publicasyncTask Invoke{ await_zmRobotHelper.updateRankingJob; }

}

使用很简单,就这么几步就完成了。

参考:www.cnblogs.com/SavionZhang 作者:张传宁

版权申明:本文来源于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,本公众号立即删除。

支持小微:

299元购买5000+的.NET架构课程,还送初级、中级课程!

腾讯云 爆款2核2G云服务器首年40元,2G4核云服务器 298 元/3年

链接:https://curl.qcloud.com/1VVs7OBH

右下角,您点一下在看图片

小微工资涨1毛

小编精心整理的这篇内容:wa插件使用教程,如果你看到此处请一定要收藏哦!

阅读剩余内容
网友评论
相关阅读
小编推荐