|
@@ -13,6 +13,7 @@ namespace CallCenter.CacheManager
|
|
|
public class CallQueueManager : BackgroundService
|
|
|
{
|
|
|
private readonly IServiceScopeFactory _serviceScopeFactory;
|
|
|
+ private const string CallKey = "CallQueue";
|
|
|
|
|
|
public CallQueueManager(IServiceScopeFactory serviceScopeFactory)
|
|
|
{
|
|
@@ -26,12 +27,21 @@ namespace CallCenter.CacheManager
|
|
|
var userCacheManager = _serviceScopeFactory.CreateScope().ServiceProvider.GetService<IUserCacheManager>();
|
|
|
//消息通知注入
|
|
|
var realtimeService = _serviceScopeFactory.CreateScope().ServiceProvider.GetService<IRealtimeService>();
|
|
|
+ //CallQueue缓存注入
|
|
|
+ var callQueueManager = _serviceScopeFactory.CreateScope().ServiceProvider.GetService<ICallCacheManager>();
|
|
|
|
|
|
var time = TimeSpan.FromSeconds(1);
|
|
|
while (!cancellationToken.IsCancellationRequested)
|
|
|
{
|
|
|
+ //查询当前队列
|
|
|
+ var callList = callQueueManager.GetCallQueueList();
|
|
|
+ int count = 0;
|
|
|
+ if (callList!=null)
|
|
|
+ {
|
|
|
+ count = callList.Count;
|
|
|
+ }
|
|
|
//通知
|
|
|
- await realtimeService.CallQueueAsync(cancellationToken);
|
|
|
+ await realtimeService.CallQueueAsync(count, cancellationToken);
|
|
|
await Task.Delay(time, cancellationToken);
|
|
|
}
|
|
|
|