Admin.Core/src/platform/ZhonTai.Admin/Tools/TaskScheduler/TaskHandler.cs
(完整代码) 1KBusing FreeScheduler;
using System.Collections.Generic;
namespace ZhonTai.Admin.Tools.TaskScheduler;
public class TaskHandler : ITaskHandler
{
readonly IFreeSql _fsql;
public TaskHandler(IFreeSql fsql)
{
_fsql = fsql;
}
public IEnumerable<TaskInfo> LoadAll() => _fsql.Select<TaskInfo>().Where(a => a.Status == TaskStatus.Running && (a.Round < 0 || a.CurrentRound < a.Round)).ToList();
public TaskInfo Load(string id) => _fsql.Select<TaskInfo>().Where(a => a.Id == id).First();
public void OnAdd(TaskInfo task) => _fsql.Insert<TaskInfo>().NoneParameter().AppendData(task).ExecuteAffrows();
public void OnRemove(TaskInfo task) => _fsql.Delete<TaskInfo>().Where(a => a.Id == task.Id).ExecuteAffrows();
public void OnExecuted(Scheduler scheduler, TaskInfo task, TaskLog result)
{
_fsql.Transaction(() =>
{
_fsql.Update<TaskInfo>().NoneParameter().SetSource(task)
.UpdateColumns(a => new { a.CurrentRound, a.ErrorTimes, a.LastRunTime, a.Status })
.ExecuteAffrows();
_fsql.Insert<TaskLog>().NoneParameter().AppendData(result).ExecuteAffrows();
});
}
public virtual void OnExecuting(Scheduler scheduler, TaskInfo task)
{
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
