• Net定时器 【转载】


     【转载】

    Timer

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

    官方地址: https://docs.microsoft.com/en-us/dotnet/api/system.timers.timer?view=netframework-4.8

    特性

    • 轻量,简单易用
    • .NET框架内置,无须引用第三方库
    • 不支持Cron表达式

    FluentScheduler

    FluentScheduler是由一位巴西的.NET开发者Talles L开发并维护的.NET平台下的一款自动定时任务调度器组件,它提供了比较丰富的定时任务调度接口,开发者可以快速方便地通过接口设置调度时间,比如:间隔1秒,2秒…n秒,只执行一次,哪月的哪一天等等。具体请参考我之前写过的两篇关于FluentScheduler的文章:

    官方地址: https://github.com/fluentscheduler/FluentScheduler

    特性

    • 提供丰富的任务调度接口,配置方便

    TaskScheduler

    TaskScheduler是一个为Windows任务调度程序提供.NET的封装组件,可以代替Windows操作系统自带的定时任务使用,提供了代码和编辑器两种方式创建定时任务。它聚合了多个版本,并提供编辑调度编辑器以快速创建定时任务。

    官方地址: https://github.com/dahall/TaskScheduler

    特性

    • 支持.NET的多个版本(.NET 2.0, 3.5, 4.0, 4.52 and .NET Standard 2.0.)
    • 支持包括脚本语言在内的所有.NET语言,比如(PowerShell)
    • 支持所有的V2本地化属性,甚至在V1的系统中
    • 支持序列化成XML
    • 支持目标版本的任务验证
    • 支持Cron表达式触发器
    • 提供可视化的定时任务调度编辑器
    • 提供动作编辑器,触发器编辑器,事件查看器,任务执行历史查看器等对话框

    Gofer.NET

    Gofer.NET是支持分布式的任务/作业调度组件,可以运行在.NET Core应用程序中。

    官方地址: https://github.com/brthor/Gofer.NET

    特性

    • 使用通用表达式语法将作业添加到队列并执行
    • 可简单地通过添加新节点来扩展任务工作池
    • 在Redis的支持下,所有的任务都被持久化

    Coravel

    Coravel是一个零配置的基于.NET标准库的微组件,它包含了定时任务调度,缓存,队列,事件广播等等功能。

    官方地址: https://docs.coravel.net/Scheduler/

    • 简单,优雅,流畅的代码书写方式创建定时任务
    • 基于.NET标准库,跨平台
    • 丰富的调度接口
    • 支持Cron表达式
    • 支持全局错误处理

    Quartz.NET

    Quartz.NET是一个开源的定时作业调度项目,旨在创建一个免费商业使用的作业调度器,同时具有“企业级”的特性。Quartz.NET目前的版本是支持跨平台的,即支持.NET和.NET Core的应用程序。

    官方地址: http://www.quartz-scheduler.net/

    特性

    • API 操作简单,只要几行简单的代码你就可以在应用程序里面实现自己的作业调度,并实时监视作业执行情况
    • 触发器功能强大,比 Windows 的任务计划提供更细的触发粒度
    • 良好的可扩展性,它基于接口编程,你可以实现自己的 Schedule 调度器,Job 作业,以及 Trigger 触发器等
    • 持久化,作业可以保存在内存中,也可以持久化到数据库,支持多种数据库类型:SqlServer、Oracle、MySql等
    • 分布式和集群,这是一个高级应用,可以在多台计算机之间创建负载平衡、容错处理
    • 支持Cron表达式
    • 支持以配置文件的方式定制作业调度

    具体使用可参考《基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度》

    Hangfire

    Hangfire是一个支持.NET和.NET Core应用程序的跨平台的后台作业处理框架,使用Hangfire时不再需要Windows服务或者单独的进程。Hangfire可以在ASP.NET/ASP.NET Core等应用程序中以简单的方式实现触发,延迟以及定时执行等任务。同时还支持CPU和I/O密集型、长时间运行和短时间运行的作业而不需要设置Windows服务或者其他的任务调度。Hangfire支持多种数据存储方式,如:Redis, SQL Server, SQL Azure和MSMQ等。

    官方地址: https://www.hangfire.io

    特性

      • 安装简单,快速入门:没有Windows服务,没有Windows调度程序,不需要单独的应用程序
      • 可持久化:后台作业是在存储中持久存储介质中的,如:SQL Server、Redis、PostgreSQL、MongoDB等
      • 作业数据透明:内置的web界面允许您查看后台作业的整体情况,以及观察每个后台作业的状态
      • 可靠:后台作业一旦无异常地被创建,Hangfire负责至少处理一次这个作业
      • 分布式:后台方法调用及其参数是序列化的,因此可以克服进程边界问题
      • 可扩展:作业过滤器允许您以类似于ASP.NET MVC操作过滤器的方式向后台处理添加自定义功能
      • 高效:尽管默认安装使用SQL Server和轮询来获取作业,但可以利用MSMQ或Redis扩展来将处理延迟降低到最低
      • 自维护:你不需要手动维护和清理存储空间,Hangfire会尽可能地自动清理旧的数据
      • 开源免费:Hangfire是开源的框架并且对商用免费,只需遵循LGPLv3许可即可
  • 相关阅读:
    ajax基本使用
    ajax
    七个你无法忽视的Git使用技巧
    Git原始笔记
    php session自定义处理
    linux下用phpize给PHP动态添加扩展
    【转】做到这一点,你也可以成为优秀的程序员
    PHP扩展开发-测验成功
    PHP扩展开发--实验成功
    php类似shell脚本的用法
  • 原文地址:https://www.cnblogs.com/deepminer/p/11993556.html
Copyright © 2020-2023  润新知