苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

楼主: 静静

[其他] 多线程数据量大时会出现未响应的情况

[复制链接]
 楼主| 发表于 2013-3-9 19:31:30 | 显示全部楼层
Private Sub getdata1()
        Dim i As Integer = 0
        Dim data As String = requestUrl()   '请求页面返回的数据
        For i = 0 To data.Length   '这个长度在600左右
            '循环的插入或者更新到数据库
        Next
    End Sub


getdata2(), getdata3(), getdata4()都是差不多的,对同一个表进行操作


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-3-9 19:33:44 | 显示全部楼层
呵呵,我是vb.net的
刚才我试着多建了连个连接字符串,好像好一些了,但是好像也不可能每个线程都用一个连接字符串吧
 楼主| 发表于 2013-3-9 19:34:54 | 显示全部楼层
多建了两个连接字符串,上面打错
 楼主| 发表于 2013-3-9 19:36:17 | 显示全部楼层
之前也写过差不多的,没出现这个问题
发表于 2013-3-9 19:40:07 | 显示全部楼层
静静 发表于 2013-3-9 19:36
之前也写过差不多的,没出现这个问题

应该是数据库数据慢慢多了的原因吧,或者是运行一段时间后,数据库的连接没有来的得释放,建议使用下数据库连接池功能。
看你的问题应该是在数据库代码或者是数据库连接池上面的问题,从这两个方面检查下吧
 楼主| 发表于 2013-3-9 19:52:19 | 显示全部楼层
本帖最后由 静静 于 2013-3-9 19:58 编辑

Public Sub sqlUserInfo(ByVal UID As String, ByVal UName As String, ByVal UInfo As String)
        '
        Dim Conn As New SqlConnection(connStr)
        If Conn.State <> ConnectionState.Open Then
            Conn.Open()
        End If

        '
        Dim Cmd As New SqlCommand
        Try


            Cmd.Connection = Conn
            Cmd.CommandType = CommandType.StoredProcedure
            Cmd.CommandText = "userInfo"
            '
            Cmd.Parameters.Add("@UID", SqlDbType.VarChar).Value = UID
            Cmd.Parameters.Add("@uName", SqlDbType.varchar).Value = UName
            Cmd.Parameters.Add("@uInfo", SqlDbType.varchar).Value = UInfo

            Cmd.ExecuteNonQuery()
            Cmd.Dispose()
        Catch ex As Exception

        End Try
        If Conn.State <> ConnectionState.Closed Then
            Conn.Close()
        End If
        Conn.Dispose()
        Conn = Nothing
    End Sub
发表于 2013-3-9 19:55:43 | 显示全部楼层
静静 发表于 2013-3-9 19:52
Public Sub sqlUserInfo(ByVal UID As String, ByVal UName As String, ByVal UInfo As String)
        ' ...

你没有使用连接池吧,需要使用哦,另外Connection 时建议使用Uing语句,不知道VB里面有吗?
 楼主| 发表于 2013-3-9 20:00:58 | 显示全部楼层
请教使用连接池
 楼主| 发表于 2013-3-9 20:02:25 | 显示全部楼层
没有using,用with,呵呵
 楼主| 发表于 2013-3-9 20:14:33 | 显示全部楼层
Dim connStr As String = "data source=.;initial catalog=tt;user id=ta;password=123456ooling=true;Min Pool Size = 10;Max Pool Size = 512"
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 04:03

© 2014-2021

快速回复 返回顶部 返回列表