public Guid QueueTask(Action task) { var job = new ActionOrAsyncFunc(task); this._tasks.Enqueue(job); return(job.Guid); }
private async Task InvokeTask(ActionOrAsyncFunc task) { try { this._logger?.LogInformation("Queued task started..."); await task.Invoke(); this._logger?.LogInformation("Queued task finished..."); } catch (Exception e) { await this.TryDispatchEvent(new DequeuedTaskFailed(task)); if (this._errorHandler != null) { this._errorHandler(e); } } }
public ScheduledEvent(Func <Task> scheduledAsyncTask) { this._scheduledAction = new ActionOrAsyncFunc(scheduledAsyncTask); }
public ScheduledEvent(Action scheduledAction) { this._scheduledAction = new ActionOrAsyncFunc(scheduledAction); }
public DequeuedTaskFailed(ActionOrAsyncFunc dequeuedTask) { this.DequeuedTask = dequeuedTask; this.FailedAtUtc = DateTime.UtcNow; this.Guid = dequeuedTask.Guid; }