定时服务启动方式调整,并调整相关业务代码

This commit is contained in:
alex
2023-09-18 10:12:37 +08:00
parent 465f6b0bdd
commit 79731d6c67
14 changed files with 1483 additions and 31 deletions

View File

@@ -43,6 +43,7 @@ using JNPF.Extras.DatabaseAccessor.SqlSugar.Models;
using Aop.Api.Domain;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using bf = System.Reflection.BindingFlags;
namespace JNPF.OAuth;
@@ -142,6 +143,8 @@ public class OAuthService : IDynamicApiController, ITransient
private readonly IMHandler _imHandler;
private readonly BackgroundService _backgroundService; //added by ly on 20230916
/// <summary>
@@ -165,7 +168,8 @@ public class OAuthService : IDynamicApiController, ITransient
ICacheManager cacheManager,
IUserManager userManager,
IEventPublisher eventPublisher,
IMHandler imHandler)
IMHandler imHandler,
BackgroundService backgroundService)
{
_captchaHandler = captchaHandler;
_userRepository = userRepository;
@@ -185,6 +189,7 @@ public class OAuthService : IDynamicApiController, ITransient
_userManager = userManager;
_eventPublisher = eventPublisher;
_imHandler = imHandler;
_backgroundService = backgroundService;
}
#region Get
@@ -287,6 +292,20 @@ public class OAuthService : IDynamicApiController, ITransient
var userId = _userManager.UserId;
//modify by ly on 20230918 登录成功后启动定时服务
if (!userId.IsNullOrWhiteSpace())
{
var isStartedProperty = _backgroundService.GetType().GetProperty("IsStarted");
if (isStartedProperty?.GetValue(_backgroundService) is bool isStarted && !isStarted)
{
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
await _backgroundService.StartAsync(cancellationTokenSource.Token);
}
}
var loginOutput = new CurrentUserOutput();
loginOutput.userInfo = await _userManager.GetUserInfo();
@@ -388,6 +407,9 @@ public class OAuthService : IDynamicApiController, ITransient
{
//await _cacheManager.DelAsync("AsscessToken");
//modify by ly on 20230918
_backgroundService.PropertySetValue("IsStarted", false);
UserManager.AsscessToken = string.Empty;
var tenantId = _userManager.TenantId ?? "default";