You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

48 lines
2.9 KiB

using Hangfire;
using Znyc.CloudCar.Task.TaskJobs;
namespace Znyc.CloudCar.Task
{
public class HangfireDispose
{
public static void HangfireService()
{
//Fire - And - forget(发布 / 订阅)
//这是一个主要的后台任务类型,持久化消息队列会去处理这个任务。当你创建了一个发布 / 订阅任务,该任务会被保存到默认队列里面(默认队列是"Default",但是支持使用多队列)。多个专注的工作者(Worker)会监听这个队列,并且从中获取任务并且完成任务。
//BackgroundJob.Enqueue(() => Console.WriteLine("Fire-and-forget"));
//延迟
//如果想要延迟某些任务的执行,可以是用以下任务。在给定延迟时间后,任务会被排入队列,并且和发布 / 订阅任务一样执行。
//BackgroundJob.Schedule(() => Console.WriteLine("Delayed"), TimeSpan.FromDays(1));
//循环
//按照周期性(小时,天等)来调用方法,请使用RecurringJob类。在复杂的场景,您可以使用CRON表达式指定计划时间来处理任务。
//RecurringJob.AddOrUpdate(() => Console.WriteLine("Daily Job"), Cron.Daily);
//连续
//连续性允许您通过将多个后台任务链接在一起来定义复杂的工作流。
//var id = BackgroundJob.Enqueue(() => Console.WriteLine("Hello, "));
//BackgroundJob.ContinueWith(id, () => Console.WriteLine("world!"));
//这里呢就是需要触发的方法 "0/10 * * * * ? " 可以自行搜索cron表达式 代表循环的规律很简单
//CancelOrderJob代表你要触发的类 Execute代表你要触发的方法
//RecurringJob.AddOrUpdate<AutoUserJob>(s => s.Execute(), "0 0 5 1/1 * ?", TimeZoneInfo.Local);
//定时刷新获取微信AccessToken
RecurringJob.AddOrUpdate<RefreshWeChatAccessTokenJob>(s => s.Execute(), "0 0/30 * * * ? ", TimeZoneInfo.Utc); // 每30分钟刷新获取微信AccessToken
//定时重置用户修改次数
RecurringJob.AddOrUpdate<AutoEquipmentJob>(s => s.ResetUserUpdateExecute(), "0 58 23 L * ? ", TimeZoneInfo.Utc); // 每月最后一天23点58分重置用户修改次数
//定时同步设备浏览量
RecurringJob.AddOrUpdate<AutoEquipmentJob>(s => s.PageViewAsyncExecute(), "0 55 23 * * ? ", TimeZoneInfo.Utc); // 每晚23点55分同步设备浏览量
//定时取消置顶设备信息
RecurringJob.AddOrUpdate<AutoEquipmentJob>(s => s.CancelTopAsyncExecute(), "0 0/5 * * * ? ", TimeZoneInfo.Utc); // 每5分钟取消置顶设备信息
//定时禁用优惠卡到期
RecurringJob.AddOrUpdate<AutoUserJob>(s => s.DisablePreferentialCardExecute(), "0 0/5 * * * ? ", TimeZoneInfo.Utc); // 每5分钟修改用户优惠卡是否到期
}
}
}