当前位置: 首页 > news >正文

asp.net core webapi如何执行周期性任务

使用Api执行周期性任务

  • 第一种,无图形化界面
    • 1.新建类,继承IJob,在实现的方法种书写需要周期性执行的事件。
    • 2.编写方法类,定义事件执行方式
    • 3.在启动方法中,进行设置,.net 6中在program.cs的Main方法中(可以在启动类中进行启动)
    • 4.考虑到IIS服务器的回收机制,需要设置一下IIS回收

第一种,无图形化界面

新建asp.net core webapi项目,使用Nuget搜索安装Quartz包。

1.新建类,继承IJob,在实现的方法种书写需要周期性执行的事件。

public class TimerWorker : IJob{public async Task Execute(IJobExecutionContext context){//定时任务TLog.WriteLog("事件执行!");}}

2.编写方法类,定义事件执行方式

public class SpecialWork{public static async void Work(){//调度器工厂ISchedulerFactory Work = new StdSchedulerFactory();//调度器IScheduler schedulers_work = await Work.GetScheduler();await schedulers_work.GetJobGroupNames();/*-------------计划任务代码实现------------------*///创建任务IJobDetail job_Work = JobBuilder.Create<TimerWorker>().WithIdentity("TimeTriggerddd", "TimeGroupdd").Build();//创建触发器 2点一分时被执行//时间字符串的解释//定时执行ITrigger trigger9 = TriggerBuilder.Create().WithCronSchedule("0 01 02 * * ?").WithIdentity("TimeTriggerddd", "TimeGroupdd").Build();//每隔多久执行一次  这个是每隔多久执行一遍  多少秒//ITrigger trigger9 = TriggerBuilder.Create().WithIdentity("TimeTriggerddd", "TimeGroupdd").WithSimpleSchedule(t => t.WithIntervalInSeconds(5).RepeatForever()).Build();     //5=5秒//添加任务及触发器至调度器中await schedulers_work.ScheduleJob(job_Work, trigger9);/*-------------计划任务代码实现------------------*///启动await schedulers_work.Start();}}

注意:定时执行时间格式,参考连接:https://www.cnblogs.com/wudequn/p/8506938.html
在这里插入图片描述

3.在启动方法中,进行设置,.net 6中在program.cs的Main方法中(可以在启动类中进行启动)

SpecialWork.Work();

4.考虑到IIS服务器的回收机制,需要设置一下IIS回收

在IIS中找到这个站点所用的程序池,点击“高级设置…” 在打开的列表中更改以下设置:
回收——固定时间间隔(分钟) 改为 0
——虚拟/专用内存限制(KB) 改为 0
进程模型——闲置超时(分钟) 改为 0
这样子,一般情况下程序池就不会被自动回收了,后台一些简单的计算线程就会正常工作
在这里插入图片描述
在这里插入图片描述
除图中标识的内容之外,闲置超时也要设为0
在这里插入图片描述

http://www.lryc.cn/news/126697.html

相关文章:

  • 快速搭建图书商城小程序的简易流程与优势
  • C++ template 循环
  • 时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)
  • mysql 数据备份和恢复
  • Lucene教程_编程入门自学教程_菜鸟教程-免费教程分享
  • 物联网工程应用实训室建设方案
  • 【AI绘画】3分钟学会ikun幻术图
  • Spring 框架入门介绍及IoC的三种注入方式
  • Centos升级openssl
  • 第4章:决策树
  • 小米平板6Max14即将发布:自研G1 电池管理芯片,支持33W反向快充
  • Elasticsearch复合查询之Boosting Query
  • Clickhouse基于文件复制写入
  • 梅赛德斯-奔驰将成为首家集成ChatGPT的汽车制造商
  • QT-播放原始PCM音频流
  • 【杂谈】聊聊我是如何从Java转入Web3的
  • ArrayList
  • 不重启Docker能添加自签SSL证书镜像仓库吗?
  • Ajax介绍
  • docker 学习--02 常用命令
  • socks5 保障网络安全与爬虫需求的完美融合
  • 构建智能医疗未来:人工智能在线上问诊系统开发中的应用
  • css3-grid:grid 布局 / 基础使用
  • 如何在windows电脑安装多个tomcat服务器和乱码问题
  • flutter:webview_flutter的简单使用
  • Ansys Zemax | 手机镜头设计 - 第 1 部分:光学设计
  • jvm从入门到精通
  • [NLP]LLM 训练时GPU显存耗用量估计
  • Unity引擎使用InteriorCubeMap采样制作假室内效果
  • Gin安装解决国内go 与 热加载