让启动项管理进行启动
可以让业务进行重写逻辑
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user