数码资讯
.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() { //需要执行的代码 } } }
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。