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

沈阳网站网站建设广东如何做企业网站设计

沈阳网站网站建设,广东如何做企业网站设计,网页设计1920尺寸,保定seo管理前言本篇会继续讲解Sikiro.SMS.Job服务的实现#xff0c;在我写第一篇的时候#xff0c;我就发现我当时设计的架构里Sikiro.SMS.Job这个可以选择不需要#xff0c;而使用MQ代替。但是为了说明调度任务使用实现也坚持写了下。后面会一篇针对架构、实现优化的讲解。源码地址在我写第一篇的时候我就发现我当时设计的架构里Sikiro.SMS.Job这个可以选择不需要而使用MQ代替。但是为了说明调度任务使用实现也坚持写了下。后面会一篇针对架构、实现优化的讲解。源码地址https://github.com/SkyChenSky/Sikiro.SMSQuartz的简介Quartz.NET是一款功能齐全的开源作业调度框架小至的应用程序大到企业系统都可以适用。Quartz是作者James House用JAVA语言编写的而Quartz.NET是从Quartz移植过来的C#版本。Quartz.Net的作用Quartz.Net是多线程的允许多个JOB同时执行。Quartz.Net可以进行持久化结合管理后台可以进行可视化的监控Quartz.Net提供API进行远程操控结合管理后台可以进行运维管理在一般企业可以利用Quartz.Net框架做各种的定时任务例如数据迁移、跑报表等等。Cron表达式字段名是否必填值范围特殊字符SecondsYES0-59, - * /MinutesYES0-59, - * /HoursYES0-23, - * /Day of monthYES1-31, - * ? / L WMonthYES1-12 or JAN-DEC, - * /Day of weekYES1-7 or SUN-SAT, - * ? / L #YearNOempty, 1970-2099, - * /缺点Quartz.Net的缺点很明显没有自带的管理后台而同款的Hangfir调度任务框架则会有更加良好的易用性。但是在Github上有不少人开源了Quartz.Net的管理后台对此作为了弥补。其他其他Quartz.Net的信息可以看我之前记录的一篇文章《Quartz.NET的使用附源码》Quartz.Net DEMO:https://github.com/SkyChenSky/QuartzDotNetDemo.git业务流程从MongoDB持久化的数据查询出状态为待处理并且定时时间小于当前时间的数据。通过Mongo驱动提供的FindOneAndUpdate对文档进行原子性操作更新中间状态并查询出刚更新的文档。如果有数据则发送到MQ由Sikiro.SMS.Bus进行订阅发送因为本次有数据我认为可能还会有其他需要发送的数据因此立刻调用JOB自身方法进行下一条需要处理的数据进行发送。如果此次JOB的执行并没有数据那么认为接下来一段时间没有需要处理的数据这次调度结束。TimeSendSms示例Mongo的原子性原子性原子是物理概念指的是指化学反应不可再分的基本微粒。而计算机领域的原子性强调的对象是操作指令、事务。我们所说的指令组是原子操作意思要么一起成功要么一起失败。不允许2个指令里一个成功一个失败的情况存在。MongoDB 原子操作MongoDB的原子操作就是要么这个文档完整的保存到Mongodb要么没有保存到Mongodb不会出现查询到的文档没有保存完整的情况。MongoDB的文档的保存修改删除等操作都是原子性除此之外还提供了FindOneAndDelete、FindOneAndUpdate、FindOneAndReplace等原子操作。以FindOneAndUpdate为例对某文档FindOneAndUpdate可以文档B进行Update操作完成后返回出文档B的结果根据参数返回结果是更新前还是更新后一般我们需要更新后。而这FindOneAndUpdate的操作对于我们更新到中间状态的非常实用避免进行Update后无法良好的查询到刚Update的文档避免应用集群部署时批量更新后无法良好分配任务批量更新多个文档需要isolated标识隔离全局锁在大并发情况下性能并不乐观虽然以上可以通过更新时标识版本号进行解决这无疑增加实现难度。MongoDB锁机制Mongodb并发操作又读写锁来进行控制。简单来说当进行读操作的时候会加读锁这个时候其他读操作可以也获得读锁但是不能加写锁也就是说不能进行写操作。当进行写操作的时候会加写锁这个时候其他操作无法加任何锁也就是说不能进行其他的读操作和写操作。多个JOB的并发性综上所述落实到我们应用场景在部署多个调度任务服务或者JOB多个线程去跑时我们可以使用FindOneAndUpdate每个调度任务每次只处理一个文档Update操作的时候会进行写锁阻塞其他进程进程的写操作。那么就可以保证每个调度任务都可以只处理唯一一个有效的文档避免重复处理。下面是我的Sikiro.Nosql.Mongo的FindOneAndUpdate封装示例因为Update字段的不友好所以我封装了一下Lambda表达式ReturnDocument  ReturnDocument.After标识响应数据是更新前还是更新后的文档。SQL Server的UpdateSelectSQL Server的操作也具有上述FindOneAndUpdate的功能我们公司成他为UpdateSelect下面是示例代码结尾本篇介绍了调度任务结合MongoDB原子操作的使用使得调度任务服务可以具有良好的伸缩性。如果有任何建议与问题可以在下方评论反馈给我。相关文章.net core实践系列之短信服务-为什么选择.net core开篇.net core实践系列之短信服务-架构设计.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现原文地址: https://www.cnblogs.com/skychen1218/p/9621844.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.yutouwan.com/news/205023/

相关文章:

  • 如何兼职做网站百度地图关键词排名优化
  • 泉州定制网站建设营销型网站建设的特点表现
  • 有网站建设需求的网站佛山网站建设方案策划
  • 台州网站建设蓝渊考研培训
  • 提供企业门户网站建设我的家乡html网页模板
  • asp源码 自助建站深圳app外包开发公司
  • 网站建设中图片多少钱软件开发外包能学到技术吗
  • 后台网站下载wordpress数据库修改密码
  • frontpage2007网站建设登陆江西建设厅三类人员的网站
  • 网站如何连接微信支付宝吗仙桃市住房建设局网站
  • 企业网站建设itcask重庆建筑证书查询网站
  • 服务器如何架设网站淘宝网页版手机登录
  • 淘宝网站的建设目的网站集约化建设的优势
  • 响应 网站建设保定建站方案
  • 深圳网站空间租用价格微官网与网站的区别
  • 大城县企业网站建设鞍山公司做网站
  • 马鞍山市直网站集约化建设wordpress 站长主题
  • 网站建设需要考虑因素建设风景区网站的目的
  • 开发网站开票名称是什么原因装潢设计公司排行
  • 门户网站对应序号是什么中山网站上排名
  • 搬家公司怎么做网站陕西省建设网三类人员证书查询系统
  • 优质视频素材网站网站建设竞争性磋商文件
  • 孝南区城乡建设局网站南宁网站建设开发
  • 建立网站成本最低学生做的网站能攻击
  • 涂料 网站 源码徐州手机网站建设制作
  • 网站设置二级域名省建设厅官网查询
  • 我负责与你们公司网站建设的沟通台州做鞋子网站
  • 网站风格的设计原则制作ppt模板的软件
  • 安徽建设工程建设信息网站最新网站网址永久发布
  • 松江郑州阳网站建设北京做网站