using Hangfire; using IRaCIS.Core.Application.Service; using IRaCIS.Core.Domain.Share; using NPOI.SS.Formula.Functions; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace IRaCIS.Core.Application.Helper { public static class HangfireJobHelper { //public static void AddOrUpdateCronJob(string jobId, string queueName, Expression methodCall, string cron) //{ // RecurringJob.AddOrUpdate(jobId, queueName, methodCall, cron); //} //添加 或者更新定时任务 Id 要唯一标识一个定义任务 public static void AddOrUpdateCronJob(string jobId, Expression> methodCall, string cron, string queueName="default") { RecurringJob.AddOrUpdate(jobId, queueName, methodCall, cron); } public static void AddOrUpdateInitCronJob(string jobId, Expression> methodCall, string cron) { RecurringJob.AddOrUpdate(jobId, "sys_init", methodCall, cron); } public static void RemoveCronJob(string jobId) { RecurringJob.RemoveIfExists(jobId); } public static void ImmediatelyOnceOnlyJob(Expression methodCall) { BackgroundJob.Enqueue("immediately_once", methodCall); } public static void ImmediatelyOnceOnlyJob(Expression> methodCall) { BackgroundJob.Enqueue("immediately_once", methodCall); } public static void NotImmediatelyOnceOnlyJob(Expression methodCall,TimeSpan timeSpan) { BackgroundJob.Schedule("not_immediately_once", methodCall,timeSpan); } public static void NotImmediatelyOnceOnlyJob(Expression> methodCall, TimeSpan timeSpan) { BackgroundJob.Schedule("not_immediately_once", methodCall, timeSpan); } } }