zoukankan      html  css  js  c++  java
  • .net core 任务调度

    有时候需要在后台定时执行一些任务,这里有两种示例:

    1、BackgroundService

    using Microsoft.Extensions.Hosting;
    using System;
    using System.Threading;
    using System.Threading.Tasks;
    
    namespace Vote.Tools
    {
        public class AccessTokenJob : BackgroundService
        {
         //重写
    ExecuteAsync
        protected override async Task ExecuteAsync(CancellationToken stoppingToken) { 
          
    try { while (!stoppingToken.IsCancellationRequested) {
                
    do {
                    //需要执行的任务
                    .......
    } while (string.IsNullOrEmpty(token));//token获取失败继续执行 await Task.Delay(7200000, stoppingToken); //7200秒执行一次 } } catch (Exception ex) { throw new Exception(); } } } }

    并且在Startup.cs ConfigureServices方法下配置

    services.AddSingleton<Microsoft.Extensions.Hosting.IHostedService, AccessTokenJob>();//第二个为工作调度的类名

    2、使用Pomelo.AspNetCore.TimedJob

    Nuget添加Pomelo.AspNetCore.TimedJob

    Startup.cs  ConfigureServices方法下配置

    services.AddTimedJob();

    using BLL.Manager;
    using BLL.Vote;
    using Models.Manager.Plan;
    using Pomelo.AspNetCore.TimedJob;
    using System.Collections.Generic;
    using System.Linq;
    
    namespace Vote.Tools
    {
        public class EmpRecordJob: Pomelo.AspNetCore.TimedJob.Job
        {
    
            // Begin 起始时间;Interval执行时间间隔,单位是毫秒
            //SkipWhileExecuting是否等待上一个执行完成,true为等待;
            [Invoke(Begin = "2019-06-20 9:00", Interval = 1000 * 3600 , SkipWhileExecuting = true)]
            public void Run()
            {
                //需要执行的代码
            }
        }
    }
  • 相关阅读:
    vs2005发布生成自定义dll
    模拟msn消息提示(右下角)
    通过GridView导出Excel
    在ASP.NET 2.0中直接得到本页面生成的HTML代码
    asp.net实现SQL Server备份还原
    通用分页存储过程算法(.net类实现)
    超链接打开自定义的协议
    GridView技巧2
    sql语句获取本周、本月数据
    asp.net开发自定义控件
  • 原文地址:https://www.cnblogs.com/SasaL/p/11155850.html
Copyright © 2011-2022 走看看