【转载】C#作业调度FluentScheduler学习笔记


C#作业调度FluentScheduler学习笔记

    FluentScheduler是一个简单的任务调度框架,定时任务管理器。

    GitHub地址:https://github.com/fluentscheduler/FluentScheduler

    二、示例程序

    新建一个WinForm程序FluentSchedulerClient,项目右键->属性->应用程序->输出类型,选择控制台应用程序。

    

    2.2、引用

    新建一个类DataSyncJob并继承IJob,代表它是一个作业,同时实现IJob.Execute方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FluentScheduler;

namespace LinkTo.Test.FluentSchedulerClient
{
    public class DataSyncJob : IJob
    {
        void IJob.Execute()
        {
            Console.WriteLine($"This is DataSyncService submmit...:{Guid.NewGuid().ToString("N")}");
        }
    }
}

    同上,再建一个作业TestJob:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FluentScheduler;

namespace LinkTo.Test.FluentSchedulerClient
{
    public class TestJob : IJob
    {
        void IJob.Execute()
        {
            Console.WriteLine($"This is TestService submmit...:{Guid.NewGuid().ToString("N")}");
        }
    }
}

    2.4、调度工厂

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using FluentScheduler;

namespace LinkTo.Test.FluentSchedulerClient
{
    public partial class Main : Form
    {

        public Main()
        {
            InitializeComponent();
            //按钮状态
            btnStart.Enabled = true;
            btnStop.Enabled = false;
        }

        /// 
        /// 开始
        /// 
        /// 
        /// 
        private void btnStart_Click(object sender, EventArgs e)
        {
            JobManager.Initialize(new FluentSchedulerFactory());

            //按钮状态
            btnStart.Enabled = false;
            btnStop.Enabled = true;
        }

        /// 
        /// 停止
        /// 
        /// 
        /// 
        private void btnStop_Click(object sender, EventArgs e)
        {
            JobManager.Stop();

            //按钮状态
            btnStart.Enabled = true;
            btnStop.Enabled = false;
        }
    }
}

    2.6、结果