码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Quartz .Net 的简单使用


    参考了:c# .net framework 4.5.2 , Quartz.NET 3.0.7 - runliuv - 博客园 (cnblogs.com)

    https://www.cnblogs.com/personblog/p/11277527.html,

    Quartz.NET 作业调度(一):Test - 简书

    自己要轮询的任务:

    1. using log4net;
    2. using Quartz;
    3. using System;
    4. using System.Collections.Generic;
    5. using System.Linq;
    6. using System.Threading.Tasks;
    7. using System.Web;
    8. namespace WzsrmyyApi.QuartzTask
    9. {
    10. [DisallowConcurrentExecution]
    11. public class ReportJob : IJob
    12. {
    13. public Task Execute(IJobExecutionContext context)
    14. {
    15. return Task.Run(() =>
    16. {
    17. foo();
    18. });
    19. }
    20. public static readonly ILog logger = LogManager.GetLogger("SendMsgJob");
    21. public void foo()
    22. {
    23. BigDataSupervisionBll bll = new BigDataSupervisionBll();
    24. BigDataSupervisionOtherBll otherBll = new BigDataSupervisionOtherBll();
    25. try
    26. {
    27. var dic = bll.SplitCount(otherBll.GetChargesRecordOneDay());
    28. int dictNum = 0; string type = "charges_record";
    29. for (int i = dictNum; i < dic.Count; i++)
    30. {
    31. string data = dic[dictNum];
    32. var res = bll.PostData(type, data);
    33. logger.Info("日志");
    34. }
    35. }
    36. catch (Exception ex)
    37. {
    38. //日志
    39. logger.Info("error " + ex);
    40. }
    41. }
    42. }
    43. }

    轮询的任务的建立

    1. using Quartz;
    2. using Quartz.Impl;
    3. using System;
    4. using System.Collections.Generic;
    5. using System.Linq;
    6. using System.Web;
    7. namespace WzsrmyyApi.QuartzTask
    8. {
    9. public class ReportJobScheduler
    10. {
    11. public static async void Start()
    12. {
    13. try
    14. {
    15. string thisJob = "ReportJob";
    16. string groupName = "gp" + thisJob;
    17. string jobName = "job" + thisJob;
    18. string triggerName = "trigger" + thisJob;
    19. // 创建作业调度池
    20. ISchedulerFactory factory = new StdSchedulerFactory();
    21. IScheduler scheduler = await factory.GetScheduler();
    22. // 创建作业
    23. IJobDetail job = JobBuilder.Create()
    24. .WithIdentity(jobName, groupName)
    25. .Build();
    26. // 创建触发器,
    27. ITrigger trigger = TriggerBuilder.Create()
    28. .WithIdentity(triggerName, groupName)
    29. .StartNow()
    30. .WithCronSchedule("0 0 22 ? * * ")//每天晚上十点
    31. .Build();
    32. //.WithSimpleSchedule(x => x.WithIntervalInSeconds(10).RepeatForever()//每10s执行一次
    33. // 加入到作业调度池中
    34. await scheduler.ScheduleJob(job, trigger);
    35. // 开始运行
    36. await scheduler.Start();
    37. }
    38. catch (Exception ex)
    39. {
    40. //日志
    41. }
    42. }
    43. }
    44. }

    最后在程序启动的时候进行注册:

    1. protected void Application_Start()
    2. {
    3. log4net.Config.XmlConfigurator.Configure();//系统日志配置
    4. QuartzTask.ReportJobScheduler.Start();//
    5. AreaRegistration.RegisterAllAreas();
    6. GlobalConfiguration.Configure(WebApiConfig.Register);
    7. FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    8. RouteConfig.RegisterRoutes(RouteTable.Routes);
    9. BundleConfig.RegisterBundles(BundleTable.Bundles);
    10. }

    以上就是简单的代码使用 。Quartz.net的使用可以通过两种方式调用:一是通过代码的方式,而是通过配置文件的方式;

    详细些的可以参考:Quartz.Net详解-CSDN博客

  • 相关阅读:
    密码学系列之:PKI的证书格式表示X.509
    第四代智能井盖传感器:智能井盖位移怎么进行监测
    docker常用命令整理
    Paddle CrowdNet 人群密度估计
    【C++编程语言】之类和对象---对象初始化和清除
    Python网络基础爬虫-python基本语法
    vue的路由与nodejs的环境搭建
    vscode - 初使用go的常用快捷键及常见错误
    8月27日计算机视觉理论学习笔记——图说
    LeetCode面试算法-力扣 88. 合并两个有序数组
  • 原文地址:https://blog.csdn.net/jiidd/article/details/134548050
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号