c# – 需要:从数据库中的作业队列执行作业的Windows服务;通缉:
需要:
>从数据库中的作业队列执行作业的Windows服务 通缉: >此类应用程序的示例代码,指南或最佳实践 背景: >用户将单击将向行中插入行的ashx链接. 重点: >这对我来说并不是一个全新的领域. >编辑:您可以假设我知道如何创建Windows服务和基本数据访问. >但我需要从头开始编写这项服务. 解决方法
鉴于您正在处理数据库队列,由于数据库的事务性质,您可以公平地完成已经完成的工作.典型的队列驱动应用程序有一个循环:
while(1) { Start transction; Dequeue item from queue; process item; save new state of item; commit; } 如果处理在中途崩溃,则事务回滚并在下次服务启动时处理该项目. 但是在数据库中编写队列实际上比你想象的要复杂得多.如果你部署一个天真的方法,你会发现你的入队和出队相互阻塞,ashx页面变得没有响应.接下来你会发现dequeue vs. dequeue是死锁,你的循环经常遇到错误1205.我强烈建议你阅读这篇文章Using Tables as Queues. 您的下一个挑战是如何将汇集率“恰到好处”.过于激进,您的数据库将从池化请求中炙手可热.太麻烦了,你的队列会在高峰期增长,而且排水太慢.您应该考虑使用完全不同的方法:使用SQL Server内置的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 是否可能在XML属性中包含HTML文本或CDATA?
- 日产生50亿条金融交易的SWIFT攻击正在进化 利用微分隔架构策
- ruby-on-rails – 当有多个包含foreign_key的记录时,Rails
- 零死角玩转2440下NandFlash拷贝并跳转到SDRAM的(启动过程详
- ruby-on-rails – 在Rails应用程序中使用FourSquare API
- Flex 原创快捷键
- c# – 为什么StackOverflow平台开发人员使用静态方法来执行
- org.xml.sax.SAXException: No input specified
- Cocos2d-x 3.2 大富翁游戏项目开发-第十八部分 问号随机事件
- xml – 是否允许浏览器以任何顺序呈现?