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

俄罗斯网站设计如何组建一个小型局域网

俄罗斯网站设计,如何组建一个小型局域网,陕西省建设网站 五大员过期,南充市房地产备案查询项目中需要用到QuartZ执行定时任务#xff0c;在此记录一下学习过程。 Quartz安装 在VS2022中#xff0c;通过Nuget包管理器安装Quartz 3.8.1 #xff0c;这是.net 6 依赖的最高版本。 创建定时器任务 1、创建QuartzConfigurator 新建QuartzConfiguratorExtensions类在此记录一下学习过程。 Quartz安装 在VS2022中通过Nuget包管理器安装Quartz 3.8.1 这是.net 6 依赖的最高版本。 创建定时器任务 1、创建QuartzConfigurator 新建QuartzConfiguratorExtensions类用于注册触发器和任务代码如下 /// summary/// 添加任务和触发器/// /summary/// typeparam nameT/typeparam/// param namequartz/param/// param nameconfig/param/// exception crefException/exceptionpublic static void AddJobAndTriggerT(this IServiceCollectionQuartzConfigurator quartz, IConfiguration config) where T : IJob{// Use the name of the IJob as the appsettings.json keystring jobName typeof(T).Name;// Try and load the schedule from configurationvar configKey $Quartz:{jobName};var cronSchedule config[configKey];// Some minor validationif (string.IsNullOrEmpty(cronSchedule)){throw new Exception($No Quartz.NET Cron schedule found for job in configuration at {configKey});}// register the job as beforevar jobKey new JobKey(jobName);quartz.AddJobT(opts opts.WithIdentity(jobKey));quartz.AddTrigger(opts opts.ForJob(jobKey).WithIdentity(jobName -trigger).WithCronSchedule(cronSchedule)); // use the schedule from configuration}/// summary/// 添加任务和触发器带参数传递/// /summary/// typeparam nameT/typeparam/// param namequartz/param/// param nameconfig/param/// param namekeyValuePairs需要传递的参数/param/// param nameIsTriggerJobDataMap默认通过 工作描述时传递参数/param/// exception crefException/exceptionpublic static void AddJobAndTriggerWithParameterT(this IServiceCollectionQuartzConfigurator quartz, IConfiguration config,IDictionarystring, object? keyValuePairs null, bool isJobDetailJobDataMap true) where T : IJob{// Use the name of the IJob as the appsettings.json keystring jobName typeof(T).Name;// Try and load the schedule from configurationvar configKey $Quartz:{jobName};var cronSchedule config[configKey];// Some minor validationif (string.IsNullOrEmpty(cronSchedule)){throw new Exception($No Quartz.NET Cron schedule found for job in configuration at {configKey});}// register the job as beforevar jobKey new JobKey(jobName);if (keyValuePairs ! null isJobDetailJobDataMap){switch (isJobDetailJobDataMap){case true:quartz.AddJobT(opts opts.WithIdentity(jobKey).UsingJobData(new JobDataMap(keyValuePairs)));quartz.AddTrigger(opts opts.ForJob(jobKey).WithIdentity(jobName -trigger).WithCronSchedule(cronSchedule)); // use the schedule from configurationbreak;case false:quartz.AddJobT(opts opts.WithIdentity(jobKey));quartz.AddTrigger(opts opts.ForJob(jobKey).WithIdentity(jobName -trigger).WithCronSchedule(cronSchedule).UsingJobData(new JobDataMap(keyValuePairs))); // use the schedule from configurationbreak;}}else{quartz.AddJobT(opts opts.WithIdentity(jobKey));quartz.AddTrigger(opts opts.ForJob(jobKey).WithIdentity(jobName -trigger).WithCronSchedule(cronSchedule)); // use the schedule from configuration}} 2、在Program.cs 中注入服务 builder.Services.AddQuartz(q {创建计划单元时间轴载体//StdSchedulerFactory schedulerFactory new StdSchedulerFactory();//var scheduler await schedulerFactory.GetScheduler();//await scheduler.Start();q.UseMicrosoftDependencyInjectionJobFactory();// Register the job, loading the schedule from configurationq.AddJobAndTriggerFromKingdeeWorkerJob(builder.Configuration); }); builder.Services.AddQuartzHostedService(q q.WaitForJobsToComplete true); 3、创建工作单元WorkerJob 新建类TestWorkerJob并继承IJob代码如下 [PersistJobDataAfterExecution]//在执行完成后保留JobDataMap数据[DisallowConcurrentExecution]//不允许并发执行即必须等待上次完成后才能执行下一次public class TestWorkerJob : IJob{private readonly ILoggerTesteWorkerJob _logger;public TestWorkerJob(ILoggerTestWorkerJob logger){ _logger logger;}public Task Execute(IJobExecutionContext context){_logger.LogInformation(DateTime.Now --- Hello world!);Task.Delay(50000);Thread.Sleep(10000);return Task.CompletedTask;}} 假如我们的定时任务执行一次需要耗时比较久而且后一次执行需要等待前一次完成并且需要前一次执行的结果作为参考那么就需要设置任务的任性。因为默认情况下工作单元在每一次运行都是一个新的实例相互之间独立运行互不干扰。所以如果需要存在一定的关联就要设置任务的特性主要有两个如下所示 [PersistJobDataAfterExecution]//在执行完成后保留JobDataMap数据 [DisallowConcurrentExecution]//不允许并发执行即必须等待上次完成后才能执行下一次 以上两个特性只需要标记在任务对应的类上即可。 4、appsettings.json配置 在appsettings.json文件中添加一项Quartz子项的必须与WorkerJob的名字保持一致value是Cron表达式 {Quartz: {FromKingdeeWorkerJob: 0/5 * * * * ?} } 然后启动项目就可以看到任务可以正常运行啦。 最后 最后附上学习链接 .NET6Quartz实现定时任务_.net6 quartz-CSDN博客 KSO - 在.NET6中项目级使用配置Quartz.NET定时任务并使用IHostedService实现项目启动自动加载任务常用的Corn表达式_net6 webapi 在配置中引入注入quartz-CSDN博客
http://www.zqtcl.cn/news/999477/

相关文章:

  • 中国住房和城乡建设部网站安全小明seo教程
  • 网站基本常识wordpress怎么使用插件
  • 无锡高端网站制作广州装修公司排名
  • 做h5商城网站pc网站建设哪
  • 顺企网萍乡网站建设自己如何开自己的商城
  • 怎样做当地网站推广平顶山车祸最新新闻事件
  • 重庆网站制作1000客户营销
  • 视频播放网站 模板潍坊网站建设首荐创美网络
  • 网站静态页面模板网页设计案例代码
  • 网站开发的ie兼容做到9网站开发具体问题
  • 企业建站业务还能做吗园林景观网站模板
  • 建筑招聘网站有哪些电商商城app制作开发
  • 做网站开发 用什么在进行网站设计时
  • 21dove谁做的的网站新媒体营销论文
  • 做电影网站配什么公众号网站新闻发布系统模板
  • 网站风格发展趋势wordpress悬浮音乐插件
  • 做网站前期费用新注册公司网站建设
  • 建站平台在线提交表格功能检测站点是否使用wordpress
  • 谁能做网站开发免费软件看电视剧
  • 深圳的网站建设网站建设网页设计做网站
  • 广州网站建设网页设计贵阳网站建设宏思锐达
  • 洪栾单页网站建设象山县城乡和住房建设局网站
  • 网站留言发送到邮箱潍坊商城网站建设
  • 四川省的住房和城乡建设厅网站首页产品设计是冷门专业吗
  • 北仑建设银行网站网站设计 导航条
  • 如何做网站宣传片单位做网站费用怎么记账
  • 西安网站建设现状购物app开发
  • 2019年做网站还有前景吗手机制作表格教程
  • 校园网站html模板南昌网站建设优化
  • 网站的建立目的来宾网站优化