常见问题
2881099 opened this issue · 4 comments
2881099 commented
任务不触发
FreeScheduler 默认是串行任务设计,最多支持30个任务同时触发,超出这个量要排队触发
耗时较高的任务,避免长时间占用触发队列,可在 OnExecuting 内使用 Task.Run(() => { ... }) 的方式执行
造成的问题:上一次任务还未执行完(耗时较久的任务),下一次任务又触发了,应加大定时间隔
ROMYIM commented
想问下,定时任务的执行逻辑写在哪呢?我看了例子只有临时任务才会传入委托,定时任务的传参是topic和body之类的,没有具体的执行委托传参或者类似于Job的类型传参
2881099 commented
想问下,定时任务的执行逻辑写在哪呢?我看了例子只有临时任务才会传入委托,定时任务的传参是topic和body之类的,没有具体的执行委托传参或者类似于Job的类型传参
.OnExecuting 就是执行逻辑,根据 topic 的判断,区分执行不同的任务。
ROMYIM commented
那这样任务的执行上下文岂不是不支持依赖注入?而且还要自己封装一个TaskFactory(JobFactory)才好控制任务的执行。不然任务执行全写在.OnExecuting上,代码太撕裂
2881099 commented
依赖注入和定时任务是两码事,不要捆绑一起看待,例如下面的例子:
[Scheduler("任务1", "0/30 * * * * *")]
static void Scheduler001()
{
System.Console.WriteLine("任务1 被触发...");
}
[Scheduler("任务2", "0/15 * * * * *")]
static void Scheduler002(IServiceProvider service)
{
System.Console.WriteLine("任务2 被触发...");
}