码迷,mamicode.com
首页 > 其他好文 > 详细

FluentScheduler定时器计划任务

时间:2018-09-11 19:43:56      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:定时任务   pac   get   gen   状态   package   usr   coding   意思   

用了FluentScheduler后,再也不想用timer计时器了。

FluentScheduler 是 .Net 下,可以让你轻松实现定时任务的工具,不需要再去写Windows服务了,更重要的是时间设置起来灵活很多,定时任务难点不就是在这么。

一、安装FluentScheduler程序包
打开程序包管理控制台,输入Install-Package FluentScheduler即可。步骤:状态栏选择 工具 - 库程序包管理器 - 程序包管理控制台,如下图:
技术分享图片

输入Install-Package FluentScheduler
技术分享图片

 

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="FluentScheduler" version="5.1.4" targetFramework="net45" />
</packages>

二.使用例子

技术分享图片
using FluentScheduler;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FluentSchedulerTest
{
    public static class Scheduler
    {
        /// <summary>
        /// 启动定时任务
        /// </summary>
        public static void StartUp()
        {
            JobManager.Initialize(new ApiJobFactory());
        }

        /// <summary>
        /// 停止定时任务
        /// </summary>
        public static void Stop()
        {
            JobManager.Stop();
        }
    }

    /// <summary>
    /// 待处理的作业工厂,在构造函数中设置好各个Job的执行计划。
    /// 参考【https://github.com/fluentscheduler/FluentScheduler】
    /// </summary>
    internal class ApiJobFactory : Registry
    {
        public ApiJobFactory()
        {
            // 立即执行每两秒一次的计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)
            Schedule<Demo>().ToRunNow().AndEvery(2).Seconds();

            // 延迟一个指定时间间隔执行一次计划任务。(当然,这个间隔依然可以是秒、分、时、天、月、年等。)
            Schedule<Demo>().ToRunOnceIn(5).Seconds();

            // 在一个指定时间执行计划任务(最常用。这里是在每天的下午 1:10 分执行)
            Schedule(() => Trace.WriteLine("It‘s 1:10 PM now.")).ToRunEvery(1).Days().At(13, 10);

            // 立即执行一个在每月的星期一 3:00 的计划任务(可以看出来这个一个比较复杂点的时间,它意思是它也能做到!)
            Schedule<Demo>().ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0);

            // 在同一个计划中执行两个(多个)任务
            Schedule<Demo>().AndThen<Demo>().ToRunNow().AndEvery(5).Minutes();
        }
    }

    internal class Demo : IJob
    {
        void IJob.Execute()
        {
            Trace.WriteLine("开始定时任务了,现在时间是:" + DateTime.Now);
        }
    }
}
技术分享图片
 
 
 
转自https://www.cnblogs.com/Violety/p/9456612.html

FluentScheduler定时器计划任务

标签:定时任务   pac   get   gen   状态   package   usr   coding   意思   

原文地址:https://www.cnblogs.com/wangchuang/p/9629634.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
周排行
mamicode.com排行更多图片
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!