实施Windows服务-如何满足这些要求?
|
我正在寻找有关实施Windows服务的一些常规建议。我的要求如下:
该服务处理数据库中的行-因此,如果某行以某种状态存在,则它需要做一些工作,写入其他一些表,然后将该行标记为正在处理。
服务启动时可能有成千上万的行在等待处理-它应该处理所有这些。
然后,该服务应继续运行,在将所有行写入我的ForProcessing表时对其进行处理。
我需要能够正常关闭它-我不要任何已处理的行
它需要有效地执行-如果可能的话,我不想轮询数据库
所以我的具体问题是:
如何保持活动状态并对新行进行响应?我可以使用某种“ 0”对象有效地处理新行吗?
如何处理正常启动和关闭?
从数据库中提取行时,我应该获取所有等待处理的内容,还是一次获取一个?
假定已经是后台服务,那么我将同步处理行吗?换句话说,有没有必要在后台线程上处理行?
我需要考虑什么帐户以及在什么权限下运行?这是部署问题吗?
还有其他需要注意的问题吗?
感谢您的任何建议。
附言是否有其他合理的替代方法来使用Windows服务来实现这一目标?
没有找到相关结果
已邀请:
2 个回复
完趣镐
。这将创建一个新的组件类,其中已经安装了两个模块。 serviceIntaller1具有服务名称,显示名称,描述以及启动类型(手动,自动等)之类的东西。另一个是serviceProcessInstaller1,您可以在其中确定要使用的登录帐户。 还有其他需要注意的问题吗? 嗯,大概吧。但是今天早上我还没有喝咖啡。 确实,最大的事情是计划如何使线程保持活动状态并响应最终的OnStop请求。例如,如果您要尝试使用
类,则可能需要在OnStart中创建一个Manual或AutoResetEvent,启动线程并让线程设置
,然后阻止reset事件。然后,在OnStop中释放您的重置事件,以便您的线程可以清理并离开。在那之后,那只是一个溜冰板! 玩得开心!
门锑腺潮