让启动项管理进行启动

可以让业务进行重写逻辑
This commit is contained in:
lindexi
2022-03-02 14:36:53 +08:00
parent 4c05583398
commit c553eba976
2 changed files with 11 additions and 3 deletions

View File

@@ -431,7 +431,7 @@ namespace dotnetCampus.ApplicationStartupManager
return wrapper;
}
wrapper = new StartupTaskWrapper(startupTaskKey);
wrapper = new StartupTaskWrapper(startupTaskKey, this);
if (StartupTaskWrappers.TryAdd(startupTaskKey, wrapper))
{
return wrapper;
@@ -453,5 +453,11 @@ namespace dotnetCampus.ApplicationStartupManager
private static string StartupTypeToKey(Type type)
=> type.Name.Remove(type.Name.Length - "startup".Length);
protected virtual Task<string> ExecuteStartupTaskAsync(StartupTaskBase startupTask, IStartupContext context,
bool uiOnly)
{
return startupTask.JoinAsync(context, uiOnly);
}
}
}

View File

@@ -9,6 +9,7 @@ namespace dotnetCampus.ApplicationStartupManager
[DebuggerDisplay("{StartupTaskKey}:{IsVisited},{VisitedFinishTime}")]
internal class StartupTaskWrapper : IStartupTaskWrapper
{
private readonly StartupManager _manager;
public HashSet<string> FollowTasks { get; private set; } = new HashSet<string>();
public HashSet<string> Dependencies { get; private set; } = new HashSet<string>();
@@ -24,8 +25,9 @@ namespace dotnetCampus.ApplicationStartupManager
public bool UIOnly { get; internal set; }
public StartupCriticalLevel CriticalLevel { get; set; }
public StartupTaskWrapper(string startupTaskKey)
public StartupTaskWrapper(string startupTaskKey, StartupManager manager)
{
_manager = manager;
StartupTaskKey = startupTaskKey;
}
@@ -43,7 +45,7 @@ namespace dotnetCampus.ApplicationStartupManager
//todo Tracer.Info($"[Startup]关键节点:{StartupTaskKey}开始执行");
}
var result = await TaskBase.JoinAsync(context, UIOnly);
var result = await _manager.ExecuteStartupTaskAsync(TaskBase, context, UIOnly);
if (CriticalLevel == StartupCriticalLevel.Critical)
{