Skip to content

lulzzz/BlueCat.TaskSchedule.Platform

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BlueCat.TaskSchedule.Platform

Enqueue 方法: 放入队列执行。执行后销毁 BackgroundJob.Enqueue(() => Console.WriteLine("Fire-and-forget"));

Schedule方法: 延迟执行。第二个参数设置延迟时间。 BackgroundJob.Schedule(() => Console.WriteLine("Delayed"), TimeSpan.FromDays(1));

AddOrUpdate方法:重复执行。第二个参数设置cronexpression表达式。 参考quartz文档:http://jingyan.baidu.com/article/a3761b2b8e843c1576f9aaac.html RecurringJob.AddOrUpdate(() => Console.Write("Recurring"), Cron.Daily);

基于队列的任务处理(Fire-and-forget jobs) 基于队列的任务处理是Hangfire中最常用的,客户端使用BackgroundJob类的静态方法Enqueue来调用,传入指定的方法(或是匿名函数),Job Queue等参数.

var jobId = BackgroundJob.Enqueue( () => Console.WriteLine("Fire-and-forget!")); 在任务被持久化到数据库之后,Hangfire服务端立即从数据库获取相关任务并装载到相应的Job Queue下,在没有异常的情况下仅处理一次,若发生异常,提供重试机制,异常及重试信息都会被记录到数据库中,通过Hangfire控制面板可以查看到这些信息。

延迟任务执行(Delayed jobs) 延迟(计划)任务跟队列任务相似,客户端调用时需要指定在一定时间间隔后调用:

var jobId = BackgroundJob.Schedule( () => Console.WriteLine("Delayed!"), TimeSpan.FromDays(7)); 定时任务执行(Recurring jobs) 定时(循环)任务代表可以重复性执行多次,支持CRON表达式:

RecurringJob.AddOrUpdate( () => Console.WriteLine("Recurring!"), Cron.Daily); 延续性任务执行(Continuations) 延续性任务类似于.NET中的Task,可以在第一个任务执行完之后紧接着再次执行另外的任务:

BackgroundJob.ContinueWith( jobId, () => Console.WriteLine("Continuation!"));

About

Using hangfire to careate tak schedule paltform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 75.7%
  • JavaScript 11.4%
  • CSS 9.2%
  • HTML 3.0%
  • TSQL 0.7%