windows service接口处理中的多线程问题

rokerker 2011-03-15 10:33:50
最近在做数据接口传输,接口来源数据使用动态对象抓取,然后将抓到的数据放入到数据库中。
为保证接口实时性,把上述的处理封到了自定义的windows service中,并设置为自动运行,现在功能已经通过大概调试通了,可是也遇到了严重的处理问题,具体是这样的,抓取来源数据的动态对象要从外部的Web Service上取得数据,而这个Web Service发布的地址是会变化的,同时会变化还有接收接口数据的数据库,现在的做法是将这2个配置信息放到一个文件中,让windows service每次启动时去读取,问题是如果读取这个配置文件已经报错,则这个启动的windows service就相当于挂了,除了能写错误日志外,什么也做不了,我是考虑是否可以使用多线程,每次启动一个线程进行接口工作,处理过程中遇到异常,记录日志后,该线程自动终止,然后启动下一线程处理。但是查了些文档后发现似乎多线程不是处理这类问题的,就产生一个疑问,类似这种的接口数据处理,各位高人都是这么处理的,我的多线程处理思路是否已经错了,因为我之前对多线程没接触过,写起来也有些担心,是否有好的建议。
...全文
423 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rokerker 2013-04-13
  • 打赏
  • 举报
回复
过去一年了,还是要结掉这个东西。 最终没有采用这个方式来解决,是换了个思路,服务照启动,但是服务承担的角色变化了,服务不再涉及数据处理的任何东西,只是作为一个总调度的身份出现,它启动起来之后只是定时调用各个下属EXE,EXE启动之后自己负责完成各种操作和,即时这些EXE报错了,也不影响下次服务的启动,就是将服务和处理分开来。 谢谢fiseasky。
小人物扫雷 2011-07-11
  • 打赏
  • 举报
回复
楼主的这个问题解决了没啊?解决的话能否分享一下,我被这个问题迷糊了,谢谢...
fiseasky 2011-04-21
  • 打赏
  • 举报
回复
2.读取配置文件 -> 3.生成C#List对象
读取配置文件是读取配置文件里面的服务名吗?然后根据服务名生成C#List对象吗?请 贴出code。
rokerker 2011-03-15
  • 打赏
  • 举报
回复
没人理我,那再整理下思路。
1.windows service启动 -> 2.读取配置文件 -> 3.生成C#List对象 -> 4.访问Web Service获取数据

-> 5.数据规整 -> 6.将获得的数据放入数据库。
这个是单线程处理的过程,如果在步骤2读取文件出错,则该单线程挂起,即使文件修复了后面的处理也无法进行了,实时处理接口的功能就失去了。步骤2没有出错,但是获得的接口数据为空,此时在步骤6就不应当进行数据插入或者更新处理,如果这里写return则该正常进行的进程也就挂起了,当Web Service上有数据之后,该进程还是不会去访问,还是达不到实时传输接口数据的目的。

针对上述2种情况,如果使用多线程处理是否可行?

如果不应该使用,有什么好的处理办法吗? CSDN高人汇集,希望给出指点 ,感谢,非常感谢。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧