.net开发中做数据采集遇到耗时操作的问题,有没有好的解决方案?
在做一个项目,会在很多其它网站做数据采集,时间长比较长,零散的图片页面等数据量加起来可能有50M以上,这些网站的反应速度还不一样,有的可能不会有响应。我之前的解决方法是用线程池,一个网站开一个线程,放入线程池
我在每一个线程功能执行完前会写入采集日志到不同的txt文件中,但发现一个问题,有的正常写入日志了,有的就没有写(如果其中报错我也会写日志)。不知道什么原因。
现在不太想用线程池,因为打开的线程量不好控制,加上不知道什么时候这些线程都执行完成了(不能用线程池的GetAvaliable函数,因为有用户在使用,开始时的线程数量并不一定=结束时候的数量)
大家有什么办法解决这种问题?数据采集+耗时操作,最好是asp.net能做,实在不行winform也可以
我希望的方案是可以控制过程,比如一次开5个线程,结束一个后把排队的一个任务加入这个线程,如此反复,如果线程要采集的网站请求1分钟后没有响应,则结束线程,开新的线程,所有线程结束,返回采集结果 --------------------编程问答-------------------- 分太少没人理???? --------------------编程问答-------------------- 不是分太少啊。
貌似只能开线程。。数据写不进去的原因是在哪里
例子 --------------------编程问答-------------------- 谢谢LS的,线程失败的原因可能是网络问题
因为单线程时没有采集不到的问题,开了上百了线程后网络带宽就那么多,有些线程可能就一直没有机会占到带宽,以前用的一个服务器是电信的,速度会快一些,好像这样的问题就不明显
但问题是那些没有采集到的线程最后也没有把报错的消息写入日志,如果是网络连不上或超时的话是会应该写入日志的,我在每个线程执行的函数最后加了一个写日志的代码,应该不论采集是否成功都会写日志,但奇怪的就是开了100多个线程,最后只有20多个写了日志,其它的线程成功执行了,但没有正常结束 --------------------编程问答-------------------- 我顶,没易做图侠肯出手相救一下? --------------------编程问答-------------------- 你想作 N 个线程并发采集,其中一个采集完就补进一个空闲线程?
搜索我的资源,我有个开源CMS的源码。里面的生成html 就是这种机制的。 --------------------编程问答-------------------- 这个我做过。。。一定要多线程。无论是WEB还是WINDOWS。在一个线程里面集成失败之后的操作就可以解决了,重复获取就OK了。希望有助解决问题 --------------------编程问答-------------------- --------------------编程问答-------------------- 谢谢,现在用命令行在做,想知道,有没有办法在WEB页面做,如何在几十分钟甚至一个小时后把操作结果返回,而不会让页面超时?
补充:.NET技术 , ASP.NET