sách gpt4 ai đã đi

Triển khai kiểm tra cơ sở dữ liệu theo lịch trình trong .Net7

In lại Tác giả: Tôi là một chú chim nhỏ Thời gian cập nhật: 2022-12-20 14:32:56 32 4
mua khóa gpt4 Nike

Trong quá trình phát triển phần mềm, đôi khi chúng ta cần kiểm tra dữ liệu trong cơ sở dữ liệu theo định kỳ và kích hoạt hành động khi tìm thấy dữ liệu mới. Để đạt được yêu cầu này, chúng tôi sẽ tiến hành một cuộc trình diễn đơn giản trên .Net 7.

Bộ đếm thời gian định kỳ

Lớp PeriodicTimer mới được thêm vào .Net 6, có thể được sử dụng để tạo bộ đếm thời gian gọi hàm gọi lại theo các khoảng thời gian cố định. Hướng dẫn sử dụng:

                        
                           sử dụng   var hẹn giờ =   mới PeriodicTimer(TimeSpan.FromSeconds(  10)); 
trong khi ( chờ bộ đếm thời gian.WaitForNextTickAsync()
{
     //Logic kinh doanh
}

Thao tác này sẽ thực hiện cứ mỗi 10 giây.

Ưu điểm của PeriodicTimer so với Timer truyền thống là:

  • PeriodicTimer sẽ cho phép chúng ta chờ không đồng bộ trong một khoảng thời gian xác định.
  • Trong quá trình thực hiện lệnh gọi lại, chúng ta có thể ngăn chặn việc thực hiện lệnh gọi lại tiếp theo cho đến khi hoàn tất thao tác hiện tại.

Bối cảnhDịch vụ

Lớp BackgroundService trong AspNetCore là lớp trừu tượng triển khai giao diện IHostService và có thể được sử dụng để tạo các dịch vụ nền. Hướng dẫn sử dụng:

                        
                           sử dụng Hệ thống; 
sử dụng System.Threading;
sử dụng System.Threading.Tasks;
sử dụng Microsoft.Extensions.Hosting;

không gian tên  Ứng dụng Console1
{
     công cộng  lớp học  Dịch vụ kiểm tra cơ sở dữ liệu:  Bối cảnhDịch vụ
    {
         được bảo vệ  ghi đè  Nhiệm vụ không đồng bộ  Thực hiện không đồng bộ( CancellationToken dừngToken
        {
             trong khi (!stoppingToken.IsCancellationRequested)
            {
                Console.WriteLine( "Đang kiểm tra cơ sở dữ liệu...");
                 // Kiểm tra mã cơ sở dữ liệu
                 chờ đợi Task.Delay(TimeSpan.FromSeconds( 5), dừng Token);
            }
        }
    }

     lớp học  Chương trình
    {
         tĩnh  vô hiệu  Chủ yếu( chuỗi[] tham số)
        {
             var máy chủ =  HostBuilder mới()
                .ConfigureServices((hostContext, dịch vụ) =>
                {
                    dịch vụ.AddHostedService();
                })
                .Xây dựng();

            host. Run();
        }
    }
}

Trong ví dụ này, chúng ta kế thừa lớp BackgroundService và ghi đè phương thức ExecuteAsync. Phương thức ExecuteAsync được gọi khi dịch vụ nền khởi động và thoát khi tham số stoppingToken bị hủy. Chúng tôi sử dụng phương thức Task.Delay trong vòng lặp while để đợi 5 giây và gọi mã kiểm tra cơ sở dữ liệu mỗi lần qua vòng lặp.

Sử dụng kết hợp

Chúng ta có thể kết hợp PeriodicTimer và BackgroundService để triển khai dịch vụ nền kiểm tra cơ sở dữ liệu định kỳ. Mã như sau:

                        
                           sử dụng Hệ thống; 
sử dụng System.Threading;
sử dụng System.Threading.Tasks;
sử dụng Microsoft.Extensions.Hosting;
sử dụng Microsoft.Extensions.Logging;

không gian tên  Ứng dụng Console1
{
     công cộng  lớp học  Dịch vụ kiểm tra cơ sở dữ liệu:  Bối cảnhDịch vụ
    {
         được bảo vệ  ghi đè  Nhiệm vụ không đồng bộ  Thực hiện không đồng bộ( CancellationToken dừngToken
        {
             sử dụng  var hẹn giờ =  mới PeriodicTimer(TimeSpan.FromSeconds( 10));
             trong khi (!stoppingToken.IsCancellationRequested)
            {
                 nếu như ( chờ bộ đếm thời gian.WaitForNextTickAsync(stoppingToken))
                {
                    Console.WriteLine( "Đang kiểm tra cơ sở dữ liệu...");
                     // Kiểm tra mã cơ sở dữ liệu
                }
            }
        }
    }

     lớp học  Chương trình
    {
         tĩnh  vô hiệu  Chủ yếu( chuỗi[] tham số)
        {
             var máy chủ =  HostBuilder mới()
                .ConfigureServices((hostContext, dịch vụ) =>
                {
                    dịch vụ.AddHostedService();
                })
                .Xây dựng();

            host. Run();
        }
    }
}

Tóm tắt

Trong bài viết này, chúng tôi giới thiệu cách sử dụng lớp PeriodicTimer và lớp BackgroundService trong .Net 7 để triển khai dịch vụ nền kiểm tra cơ sở dữ liệu định kỳ. Trong thực tế sử dụng, bạn sẽ gặp phải những tình huống phức tạp hơn. Bài viết này chỉ là một ví dụ đơn giản.

Liên kết tham khảo

  • Bộ đếm thời gian định kỳ [1]
  • Dịch vụ lưu trữ trong ASP.NET Core [2]

Bài viết này được viết bằng Chat OpenAI, do đó hoàn toàn có thể có bất kỳ điểm tương đồng nào.

  • Tác giả của bài viết này: newbe36524
  • Liên kết đến bài viết này: https://www.newbe.pro/ChatAI/How-to-create-a-timer-host-service/
  • Tuyên bố bản quyền: Tất cả các bài viết trong blog này đều được cấp phép theo thỏa thuận BY-NC-SA trừ khi có quy định khác. Vui lòng ghi rõ nguồn khi đăng lại!

Tài liệu tham khảo

[1]

Bộ đếm thời gian định kỳ: https://learn.microsoft.com/dotnet/api/system.threading.periodictimer?view=net-7.0&WT.mc_id=DX-MVP-5003606 .

[2]

Dịch vụ lưu trữ trong ASP.NET Core: https://learn.microsoft.com/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-6.0&WT.mc_id=DX-MVP-5003606 .

Cuối cùng, bài viết này về việc triển khai kiểm tra cơ sở dữ liệu theo lịch trình dưới .Net7 kết thúc tại đây. Nếu bạn muốn biết thêm về việc triển khai kiểm tra cơ sở dữ liệu theo lịch trình dưới .Net7, vui lòng tìm kiếm các bài viết trên CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

32 4 0
Tôi là một chú chim nhỏ
Hồ sơ cá nhân

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á Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com