Aicrosoft.Scheduling 6.1.7

There is a newer version of this package available.
See the version list below for details.
dotnet add package Aicrosoft.Scheduling --version 6.1.7
NuGet\Install-Package Aicrosoft.Scheduling -Version 6.1.7
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aicrosoft.Scheduling" Version="6.1.7" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Aicrosoft.Scheduling --version 6.1.7
#r "nuget: Aicrosoft.Scheduling, 6.1.7"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Aicrosoft.Scheduling as a Cake Addin
#addin nuget:?package=Aicrosoft.Scheduling&version=6.1.7

// Install Aicrosoft.Scheduling as a Cake Tool
#tool nuget:?package=Aicrosoft.Scheduling&version=6.1.7

Aicrosoft.Scheduling

简单的任务调度框架

Keywords: task,job,routine,schedule

关于UML 图及设计说明

  1. Job仅仅是描述工作的内容与用到的Woker;
  2. Woker是具体运行Job里描述的工作的实例。
  3. Job由具体的JobProvider创建,然后能过JobFactory汇总出所有的可用Jobs;
  4. Woker由WokerPoolProvider提供,然后由WokerPoolFactory汇总所有可用的Woker。

工作类型

  1. 由其它Worker唤醒的工作 Default
  2. 由系统启动的持续性工作 System = 1
  3. 由Supervisor启动的定时工作 Interval或者CronExpression。

Job的触发器

根据传入的Triger类型来生成触发器

  • Default 通过其它的Woker来触发的Job
  • Startup 大于0的延迟启动毫秒数,Int类型的数字
  • Interval 间隔运行的Job,Timespan类型
  • Schedulable 定时触发的Job,CronExpresssion表达式

关于Woker的核心设计理念

  • 根据Job的JobTrigger的Style可知,除了Default外,所有的Job都要在适当的时间运行。
  • 所以,所有非Default类型的Job的Worker都要继承TimerWorker来运行。
  • Default类型的Job才可以直接继承Worker来运行。

关于UML上Class创建与依赖的关系说明

  1. Instances are mostly created through DI through their interfaces.
  2. The interface instantiated by DI does not draw the relationship
  3. WorkShop 消费 Worker, WorkerPoolFactory 创建Woker。

Note List

  • 下次触发时间均以Utc时间为准[任意时间通过扩展方法 GetNextRun 取得的下次运行时间返回的是Utc时间]。

1.6.2.x

  • 新一代任务调试框架
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on Aicrosoft.Scheduling:

Package Downloads
AutoUpdateJobDemo

Extensions of Aicrosoft Ltd.

AppInsightsTelemetryJob

Extensions of Aicrosoft Ltd.

DDNSJob

Extensions of Aicrosoft Ltd.

PrinergyJob

Extensions of Aicrosoft Ltd.

SuperJobs.Core

Extensions of Aicrosoft Ltd.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
6.4.0 314 11/20/2023
6.3.2 122 11/1/2023
6.2.1 134 8/25/2023
6.1.7 148 7/25/2023
6.1.6 131 5/17/2023
6.1.5 219 3/13/2023
6.1.4 223 3/11/2023
6.1.3 240 2/21/2023

Ver:6.1.6  2023-03-16 Release Notes:
- Fix some waring in code.
- Add extension method IfNotNullOrEmptyThen to run Action when a string value is not empty
- LogHelper.SetConfigurationVariable replaces old SetNLogConfigVariable (flag not available)
- Increase the execution of If conditions, mark other If methods as expired and be removed
- Added the generation of ReleaseNote