Câu hỏi phỏng vấn Net core
Câu hỏi

Mẫu đúng để triển khai công việc nền chạy lâu dài trong Asp.Net Core là gì?

Câu trả lời

Để triển khai công việc nền chạy lâu dài trong Asp.Net Core, một mẫu phổ biến là sử dụng các dịch vụ nền (background services) hoặc các công việc nền (background tasks) thông qua IHostedService hoặc BackgroundService. Các dịch vụ này cho phép bạn thực hiện các tác vụ không đồng bộ mà không ảnh hưởng đến hiệu suất của ứng dụng chính.

Một cách cụ thể, bạn có thể đăng ký một dịch vụ nền trong phương thức ConfigureServices của lớp Startup và sau đó triển khai logic của công việc nền trong phương thức ExecuteAsync của lớp dịch vụ nền. Lớp dịch vụ nền này sẽ kế thừa từ BackgroundService và cần ghi đè phương thức ExecuteAsync để xác định công việc cần thực hiện[3][6].

Ngoài ra, bạn cũng có thể sử dụng các thư viện bên thứ ba như Hangfire để quản lý các công việc nền. Hangfire cung cấp một bảng điều khiển giao diện người dùng để bạn có thể theo dõi và quản lý các công việc nền một cách dễ dàng[16].

Đối với các tác vụ đơn giản hơn, bạn có thể sử dụng Task.Run hoặc TaskFactory.StartNew với tùy chọn TaskCreationOptions.LongRunning để báo hiệu rằng công việc có thể sẽ chạy trong một thời gian dài[1].

Tuy nhiên, cần lưu ý rằng việc sử dụng Task.Run hoặc TaskFactory.StartNew không được khuyến nghị trong môi trường ASP.NET Core do các vấn đề về quản lý vòng đời của ứng dụng và việc tái sử dụng luồng. Do đó, việc sử dụng các dịch vụ nền được quản lý bởi ASP.NET Core là cách tiếp cận được khuyến khích.

Citations:
[1] https://stackoverflow.com/questions/45013054/asp-net-core-long-running-background-task
[2] https://hackernoon.com/vi/t%E1%BA%A1i-sao-b%E1%BA%A1n-c%E1%BA...

middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Khi sử dụng DI (Dependency Injection) trong Controller, tôi có nên gọi IDisposable trên bất kỳ dịch vụ nào được inject không?

entry

BoxingUnboxing là gì ?

middle

Làm thế nào bạn có thể tạo Scope riêng cho một đối tượng Scoped trong .NET?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào