sách gpt4 ăn đã đi

Quartz.NET的具体使用

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 32 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

这篇CFSDN的博客文章Quartz.NET的具体使用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、什么是Quartz.NET?

Quartz.NET 是一个功能齐全的开源作业调度系统,可用于从最小的应用程序到大型企业系统.

Quartz.NET是纯净的,它是一个.Net程序集,是非常流行的Java作业调度系统Quartz的C#实现.

  。

2、Quartz.NET可以做什么?

Quartz.NET很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等.

Quartz.NET允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联.

Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业.

我此次选择Quartz.Net使用的版本是 3.3.3 。

这里强调一点:3.x的版本与2.x的版本使用方式有一定的差别 。

Quartz.NET官方文档:https://www.quartz-scheduler.net/documentation/quartz-3.x/quick-start.html 。

  。

3、ASP.NET Core如何使用Quartz.NET?

首先我们需要创建一个ASP.NET Core web的项目,创建的过程就不展示了,我创建的是API项目,使用传统三层架构.

Quartz.NET的具体使用

项目创建好后,我们需要在NuGet包管理器中安装Quartz.AspNetCore和Quartz.Extensions.DependencyInjection 。

Quartz.NET的具体使用

Quartz.NET的具体使用

与2.x的使用方式不同,因为我使用的版本是3.3.3(此时最新版本)。我们就不像传统的创建调度中心类。传统的是定义作业工厂类【ResetJobFactory】,控制中心类【SchedulerCenter】,以及定期工作类【RegularWork】(如下图)在这就不过多介绍了.

Quartz.NET的具体使用

只需创建一个定期工作类【RegularWork】,并且继承Quartz.net的IJob接口,I_RegularWork_BLL能注入到RegularWork内需要UseMicrosoftDependencyInjectionJobFactory. 。

public class RegularWork : IJob { private readonly I_RegularWork_BLL I_bll; public RegularWork(I_RegularWork_BLL Ibll) { I_bll = Ibll; } public Task Execute(IJobExecutionContext context) { Input_RoomType model = new Input_RoomType(); model.currentPage = 1; model.pageSize = 1; var result = I_bll.getRoomTypeList(model); return Task.Run(() => { using (StreamWriter sw = new StreamWriter(@"F:/Quartz-NET.txt", true, Encoding.UTF8)) { sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff =>") + JsonConvert.SerializeObject(result)); } }); }}

在Startup.cs的ConfigureServices方法内通过services去注册RegularWork 。

//Quartz的工作单元services.AddTransient();

Trung tâm điều phối thạch anh được thêm vào trong phương thức configureServices. Quartz.Extensions.DependencyInjection cung cấp khả năng tích hợp với Microsoft Dependency Insert, mặc dù Quartz cung cấp hai lựa chọn thay thế tích hợp cho các nhà máy công việc, có thể được định cấu hình bằng cách gọi UseMicrosoftDependencyInjectionJobFactory hoặc UseMicrosoftDependencyInjectionScopedJobFactory (không được dùng nữa).

Bắt đầu với Quartz.NET 3.3.2, tất cả các công việc được tạo bởi nhà máy công việc mặc định đều là các công việc có phạm vi và sẽ không còn sử dụng UseMicrosoftDependencyInjectionScopedJobFactory nữa.

AddJob - Thêm đơn vị công việc mới StartNow có nghĩa là công việc sẽ bắt đầu thực hiện ngay bây giờ;

WithInterval được sử dụng để thực thi các quy tắc thực thi chính sách thời gian;

TimeSpan.FromSeconds biểu thị khoảng thời gian thực hiện tính bằng giây; RepeatForever biểu thị công việc lặp lại, bạn có thể sử dụng WithRepeatCount(5) thay vì RepeatForever;

//Các dịch vụ của trung tâm điều phối thạch anh.AddQuartz(q => { //Để tiêm q.UseMicrosoftDependencyInjectionJobFactory(); //Bộ lập lịch cơ bản, công việc và cấu hình kích hoạt Quartz var jobKey = new JobKey("RegularWork", "regularWorkGroup") ; q. AddJob(jobKey, j => j .WithDescription("Công việc thường xuyên của tôi") ); q.AddTrigger(t => t .WithIdentity("Trigger") .ForJob(jobKey) .StartNow() .WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromSeconds(10))//Bắt đầu giây 10 giây .RepeatForever( ) )//Công việc liên tục.WithDescription("Công việc thường xuyên của tôi được kích hoạt") );});           

Dịch vụ thạch anh được thêm vào trong phương thức configureServices.

// ASP.NET Core Hosting - Thêm dịch vụ Máy chủ Quartz.AddQuartzServer(options =>{ // Khi tắt máy, chúng tôi muốn các công việc hoàn thành bình thường options.WaitForJobsToComplete = false;});

Mã hoàn chỉnh.

//Các dịch vụ đơn vị công việc của Quartz.AddTransient(); //Các dịch vụ của trung tâm điều phối thạch anh.AddQuartz(q => { //Được sử dụng để tiêm q.UseMicrosoftDependencyInjectionJobFactory(); // Cấu hình bộ lập lịch, công việc và kích hoạt Quartz cơ bản var jobKey = new JobKey ("RegularWork", "regularWorkGroup"); q.AddJob(jobKey, j => j .WithDescription("Công việc thường xuyên của tôi") ); q.AddTrigger(t => t .WithIdentity("Trigger") .ForJob(jobKey) .StartNow() .WithSimpleSchedule(x => x.WithInterval(TimeSpan.FromSeconds(10 ))//Bắt đầu giây 10 giây.WithRepeatCount(5))//Tiếp tục làm việc.WithDescription("Thông thường của tôi job trigger") );}); // ASP.NET Core Hosting - Thêm dịch vụ Quartz services.AddQuartzServer(options =>{ // Khi đóng, chúng ta muốn công việc hoàn thành bình thường options.WaitForJobsToComplete = false;});

Quartz.NET的具体使用

Tại thời điểm này, chúng tôi bắt đầu dự án và công việc thường xuyên bắt đầu. Việc tiêm vào thời điểm này có hiệu quả và kết quả sau khi truy vấn dữ liệu được in dưới dạng tệp Quartz-NET.txt trong ổ F (như hình bên dưới).

Quartz.NET的具体使用

  。

4. Biểu thức cron của Quartz

Tài liệu chính thức: https://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html.

Nó bao gồm 7 phân đoạn: giây, phút, giờ, ngày, tháng, tuần và năm (tùy chọn) "-": biểu thị phạm vi THỨ HAI-THỨ TƯ biểu thị Thứ Hai đến Thứ Tư ",": biểu thị điều tra MON, WEB biểu thị Thứ Hai và Thứ Tư. Thứ Tư "*": biểu thị bảng là "Mỗi", hàng tháng, hàng ngày, hàng tuần, hàng năm, v.v. "/": biểu thị mức tăng: 0/15 (trong phân đoạn phút) Cứ sau 15 phút, bắt đầu sau 0 phút, 3. /20 Cứ 20 phút một lần, bắt đầu từ 3 Bắt đầu sau vài phút"?" : Chỉ có thể xuất hiện trong phân đoạn ngày và tuần, biểu thị rằng không có giá trị cụ thể nào được chỉ định. “L”: Chỉ có thể xuất hiện trong phân đoạn ngày và tuần, là viết tắt của Last, ngày cuối cùng của tháng, ngày cuối cùng của tháng. một tuần (Thứ Bảy) “W”: biểu thị ngày làm việc, ngày làm việc gần nhất với giá trị cho trước “#”: biểu thị ngày trong tuần trong tháng, ví dụ: “6#3” biểu thị ngày thứ Sáu thứ ba của tháng. mỗi tháng (1=CN ...6=FRI,7=SAT).

  。

Sự biểu lộ Nghĩa
0 0 12 * * ? Kích hoạt vào 12h trưa hàng ngày
0 15 10 ? * * Được kích hoạt vào lúc 10:15 sáng hàng ngày
0 15 10 * * ? Được kích hoạt vào lúc 10:15 sáng hàng ngày
0 15 10 * * ? * Được kích hoạt vào lúc 10:15 sáng hàng ngày
0 15 10 * * ? 2005 Được kích hoạt hàng ngày vào lúc 10:15 sáng năm 2005
0 * 14 * * ? Kích hoạt cứ sau 1 phút từ 2 giờ chiều đến 2 giờ 59 chiều mỗi ngày
0 0/5 14 * * ? Kích hoạt cứ sau 5 phút từ 2 giờ chiều đến 2 giờ 55 chiều mỗi ngày
0 0/5 14,18 * * ? Kích hoạt cứ sau 5 phút trong khoảng thời gian từ 2 giờ chiều đến 2 giờ 55 chiều và cứ sau 5 phút từ 6 giờ chiều đến 6 giờ 55 chiều
0 0-5 14 * * ? Kích hoạt cứ sau 1 phút từ 2 giờ chiều đến 2 giờ 05 chiều mỗi ngày
0 10,44 14 ? 3 THỨ TƯ Được kích hoạt vào thứ Tư hàng tuần trong tháng 3 lúc 2:10 chiều và 2:44 chiều
0 15 10 ? * Thứ 2-Thứ 6 Được kích hoạt lúc 10:15 sáng từ Thứ Hai đến Thứ Sáu
0 15 10 15 * ? Kích hoạt vào lúc 10h15 ngày 15 hàng tháng
0 15 10 L * ? Kích hoạt lúc 10h15 sáng ngày cuối cùng hàng tháng
0 15 10 L-2 * ? Cháy vào lúc 10:15 sáng ngày thứ 2 tính từ cuối cùng của mỗi tháng
0 15 10 ? * 6L Được kích hoạt vào Thứ Sáu cuối cùng hàng tháng lúc 10:15 sáng
0 15 10 ? * 6L Cháy lúc 10:15 sáng thứ sáu cuối cùng của mỗi tháng
0 15 10 ? * 6L 2002-2005 Được kích hoạt lúc 10:15 sáng thứ Sáu cuối cùng của mỗi tháng từ năm 2002 đến năm 2005
0 15 10 ? * 6#3 Được kích hoạt vào Thứ Sáu của tuần thứ ba hàng tháng lúc 10:15 sáng
0 0 12 1/5 * ? Cháy vào lúc 12 giờ trưa cứ 5 ngày một lần trong tháng, bắt đầu từ ngày đầu tiên của tháng.
0 11 11 11 11 ? Cháy vào ngày 11 tháng 11 lúc 11:11 sáng.

Đến đây là kết thúc bài viết về công dụng cụ thể của Quartz.NET. Để biết thêm thông tin về cách sử dụng Quartz.NET, vui lòng tìm kiếm các bài viết trước của tôi hoặc tiếp tục duyệt các bài viết liên quan bên dưới. Mong các bạn sẽ ủng hộ tôi trong thời gian tới! .

Liên kết gốc: https://www.cnblogs.com/LaoPaoEr/p/15129899.html.

Cuối cùng, bài viết về công dụng cụ thể của Quartz.NET kết thúc tại đây. Nếu bạn muốn biết thêm về công dụng cụ thể của Quartz.NET, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. blog tương lai! .

32 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress