hrms-api-recruit/Services/ImportJobQueue.cs

23 lines
673 B
C#
Raw Normal View History

2026-05-12 16:32:46 +07:00
using System.Threading.Channels;
namespace BMA.EHR.Recruit.Services;
public class ImportJobQueue
{
private readonly Channel<ImportJobInfo> _channel = Channel.CreateBounded<ImportJobInfo>(new BoundedChannelOptions(100)
{
FullMode = BoundedChannelFullMode.Wait,
SingleReader = true
});
public async ValueTask EnqueueAsync(ImportJobInfo job, CancellationToken cancellationToken = default)
{
await _channel.Writer.WriteAsync(job, cancellationToken);
}
public async ValueTask<ImportJobInfo> DequeueAsync(CancellationToken cancellationToken)
{
return await _channel.Reader.ReadAsync(cancellationToken);
}
}