2881099/FreeScheduler

建议:临时任务可否支持持久化

3zengzz opened this issue · 2 comments

建议:临时任务可否支持持久化,类似发短信,消息之类的任务,像hangfire 支持持久化,在可视面板查看错误信息重试。

可以使用 AddTask 解决

static ConcurrentDictionary<string, Action> _tempTasks = new ConcurrentDictionary<string, Action>();

void OnExecuting(TaskInfo task)
{
    if (task.Topic == "tempTask")
    {
        if (_tempTasks.TryGetValue(task.Id, out var handler))
        {
            handler?.Invoke();
            _tempTasks.TryRemove(task.Id, _);
        }
    }
}

var taskId = scheduler.AddTask(topic: "tempTask", round: 1, body: "", seconds: 10);
_tempTasks.TryAdd(taskId, () => {
    Console.WriteLine("...");
});