mirror of
https://github.com/C9Glax/tranga.git
synced 2025-07-03 17:34:17 +02:00
BaseWorker Logging
This commit is contained in:
@ -31,6 +31,7 @@ public abstract class BaseWorker : Identifiable
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void Cancel()
|
public void Cancel()
|
||||||
{
|
{
|
||||||
|
Log.Debug($"Cancelled {this}");
|
||||||
this.State = WorkerExecutionState.Cancelled;
|
this.State = WorkerExecutionState.Cancelled;
|
||||||
CancellationTokenSource.Cancel();
|
CancellationTokenSource.Cancel();
|
||||||
}
|
}
|
||||||
@ -40,6 +41,7 @@ public abstract class BaseWorker : Identifiable
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected void Fail()
|
protected void Fail()
|
||||||
{
|
{
|
||||||
|
Log.Debug($"Failed {this}");
|
||||||
this.State = WorkerExecutionState.Failed;
|
this.State = WorkerExecutionState.Failed;
|
||||||
CancellationTokenSource.Cancel();
|
CancellationTokenSource.Cancel();
|
||||||
}
|
}
|
||||||
@ -68,6 +70,7 @@ public abstract class BaseWorker : Identifiable
|
|||||||
/// </returns>
|
/// </returns>
|
||||||
public Task<BaseWorker[]> DoWork()
|
public Task<BaseWorker[]> DoWork()
|
||||||
{
|
{
|
||||||
|
Log.Debug($"Checking {this}");
|
||||||
this.State = WorkerExecutionState.Waiting;
|
this.State = WorkerExecutionState.Waiting;
|
||||||
|
|
||||||
BaseWorker[] missingDependenciesThatNeedStarting = MissingDependencies.Where(d => d.State < WorkerExecutionState.Waiting).ToArray();
|
BaseWorker[] missingDependenciesThatNeedStarting = MissingDependencies.Where(d => d.State < WorkerExecutionState.Waiting).ToArray();
|
||||||
@ -77,8 +80,15 @@ public abstract class BaseWorker : Identifiable
|
|||||||
if (MissingDependencies.Any())
|
if (MissingDependencies.Any())
|
||||||
return new Task<BaseWorker[]>(WaitForDependencies);
|
return new Task<BaseWorker[]>(WaitForDependencies);
|
||||||
|
|
||||||
|
Log.Info($"Running {this}");
|
||||||
|
DateTime startTime = DateTime.UtcNow;
|
||||||
Task<BaseWorker[]> task = new (DoWorkInternal, CancellationTokenSource.Token);
|
Task<BaseWorker[]> task = new (DoWorkInternal, CancellationTokenSource.Token);
|
||||||
task.GetAwaiter().OnCompleted(() => this.State = WorkerExecutionState.Completed);
|
task.GetAwaiter().OnCompleted(() =>
|
||||||
|
{
|
||||||
|
DateTime endTime = DateTime.UtcNow;
|
||||||
|
Log.Info($"Completed {this}\n\t{endTime.Subtract(startTime).TotalMilliseconds} ms");
|
||||||
|
this.State = WorkerExecutionState.Completed;
|
||||||
|
});
|
||||||
task.Start();
|
task.Start();
|
||||||
this.State = WorkerExecutionState.Running;
|
this.State = WorkerExecutionState.Running;
|
||||||
return task;
|
return task;
|
||||||
@ -88,6 +98,7 @@ public abstract class BaseWorker : Identifiable
|
|||||||
|
|
||||||
private BaseWorker[] WaitForDependencies()
|
private BaseWorker[] WaitForDependencies()
|
||||||
{
|
{
|
||||||
|
Log.Info($"Waiting for {MissingDependencies.Count()} Dependencies {this}:\n\t{string.Join("\n\t", MissingDependencies.Select(d => d.ToString()))}");
|
||||||
while (CancellationTokenSource.IsCancellationRequested == false && MissingDependencies.Any())
|
while (CancellationTokenSource.IsCancellationRequested == false && MissingDependencies.Any())
|
||||||
{
|
{
|
||||||
Thread.Sleep(TrangaSettings.workCycleTimeout);
|
Thread.Sleep(TrangaSettings.workCycleTimeout);
|
||||||
|
Reference in New Issue
Block a user