-- 作者:zyqzyy
-- 发布时间:2015/12/15 15:46:00
-- [求助]请教“逛逛” 老师,“队列使用的简例”的一些问题
按老师的“队列使用的简例”
随机出现下面两个问题:
1、 连接未关闭. 连接的当前状态为正在连接
2、如下图:
此主题相关图片如下:数据源01.png
队列处理函数:
If Vars("逻辑1") > 0 AndAlso _MyQueue IsNot Nothing AndAlso _MyQueue.Count > 0 Then Dim dr As DataRow = _MyQueue.Dequeue \'获取队列的第一个值 Dim Change As String = dr("ChangeType") Dim ftpfile As String If dr.IsNull("FtpPath") = True \'合成文件明细表的文件名 ftpfile = dr("FullPath").Replace(getConfigValue("LocalPath",""),"").Replace("\\","/") Else ftpfile = dr("FtpPath").Replace("\\","/") End If Dim s As String Dim ftpPath1 As String ftpPath1 = dr("FtpPath") s = FileSys.GetName(dr("FullPath")) \'取出文件名,用于合成ftp上传路径 ftpPath1 = ftpPath1.Replace(s,"") \'生成本地的目录(网盘下的目录),用于建立ftp目录 Dim ftpPath As String ftpPath = getConfigValue("FtpPath","") & ftpPath1 \'合成传递ftp上传文件路径 Dim fname As String = dr("FullPath").Replace(GetConfigValue("LocalPath",""),"").Replace("\\","/") \'合成文件明细表的文件名 Dim dsys As DataRow dsys = DataTables("System_Set").Find("User_Name = \'" & User.Name & "\'") \'取出ftp"根目录" If dsys Is Nothing Return Nothing End If dr("success") = 2 \'正在同步 dr.Save() \'Dim det As String = dsys("UnitName") & "|" & dsys("DepartmentOne") & "|" & dsys("User_Name") \'用户信息:0单位1科室2用户名 Dim d As DataRow d = DataTables("FilesTB").SQLFind("[UnitName] = \'" & dsys("UnitName") & "\' and [DepartmentOne] = \'" & dsys("DepartmentOne") & "\' and [User_Name] = \'" & dsys("User_Name") & "\' and [FtpPath] = \'" & fname & "\'") If d IsNot Nothing
If dr.Isnull("OldName") = False \'文件重命名事件的处理 If dr("ChangeType") = "Deleted" OrElse dr("ChangeType") = "Changed" \'文件删除事件的处理 DataTables("TempTable").ReplaceFor("OldName","","[FullPath] = \'" & dr("FullPath") & "\'") \'删除事件记录表中重命名的内容 Else Dim a0,a1,a2,a3 As String a3 = getConfigValue("LocalPath","") & dr("OldName").Replace("/","\\") \'Renamed3 原本地文件名(路径) a2 = getConfigValue("LocalPath","") & dr("FtpPath").Replace("/","\\") \'Renamed2 新本地文件名(路径) a1 = getConfigValue("FtpPath","") & dr("FtpPath") \'Renamed1 新ftp文件名 a0 = getConfigValue("FtpPath","") & dr("OldName") \'Renamed0 原ftp文件名 If Functions.Execute("Renamed",a0,a1,a2,a3) = True dr("success") = 3 \'重命名成功 Vars("逻辑1") += 1 \'通知执行下一个任务 Else dr("success") = 1 \'重命名失败 dr("Failure") += 1 Vars("逻辑1") += 1 \'通知执行下一个任务 End If dr.Save() End If ElseIf Change = "Deleted" ThreadCount = 0 ThreadSum = 0 ThreadSum += 1 \'下载的任务数加1 UpdateOff = False If Functions.Execute("Deleted",ftpPath & s ,dr("FullPath"),ftpfile) = True \'参数1 ftp路径及文件名,参数2本地路径及文件名 ,参数3:明细表中的文件名 dr("success") = 3 \'文件删除成功 Vars("逻辑1") += 1 \'通知执行下一个任务 Else dr("success") = 1 \'文件删除失败 dr("Failure") += 1 Vars("逻辑1") += 1 \'通知执行下一个任务 End If dr.Save() ElseIf Change = "Created" OrElse dr("ChangeType") = "Changed" OrElse (dr.isnull("OldName") And dr("ChangeType") = "Renamed") \'文件新建,更改事件的处理 If FileSys.FileExists(dr("FullPath")) \'本地文件不存在则删除事件记录 If FileIsOpened(dr("FullPath")) = False Then Dim ifo As New FileInfo(dr("FullPath")) If ifo.Length > 0 \'文件的内容为空值,不上传,直接标记为成功,这种情况:新建文件还未添加内容 If CRCCheckFile(dr("FullPath")) > "" d = DataTables("FilesTB").AddNew() \'添加文件 d("FtpPath") = dr("FtpPath") d("CRCCheck") = CRCCheckFile(dr("FullPath")) d("UnitName") = dsys("UnitName") d("DepartmentOne") = dsys("DepartmentOne") d("User_Name") = dsys("User_Name") d("date") = Date.Now() d.Save() If Functions.Execute("FileCreated",dr("FullPath"),ftpPath,ftpPath & s ) = True \'参数1本地路径及文件名, ,参数2ftp路径,,参数3ftp路径及文件名 dr("success") = 3 Vars("逻辑1") += 1 \'通知执行下一个任务 Else dr("success") = 1 \'文件建,改失败 dr("Failure") += 1 Vars("逻辑1") += 1 \'通知执行下一个任务 End If Else dr("success") = 1 \'事件记录表标记为1失败 dr("Failure") += 1 Vars("逻辑1") += 1 \'通知执行下一个任务 \'DataTables("TempTable").ReplaceFor("success",1,"FullPath = \'" & dr1("FullPath") & "\'") \'事件记录表标记为1,失败! End If Else dr("success") = 3 Vars("逻辑1") += 1 \'通知执行下一个任务 End If Else dr("success") = 1 \'事件记录表标记为1失败 dr("Failure") += 1 Vars("逻辑1") += 1 \'通知执行下一个任务 End If End If ElseIf Change = "Dn" Dim locName = (GetConfigValue("LocalPath","") & dr("FullPath")).Replace("/","\\") \'合成 本地文件名及路径 Dim nFTP = dr("FullPath") \' ftp文件名及路径 \' UpdateOff = False \'关闭文件监视器 ThreadCount = 0 ThreadSum = 0 ThreadSum += 1 \'下载的任务数加1 UpdateOff = False If Functions.Execute("FTPDown",locName,nFTP,dr("Failure"),GetConfigValue("UserInfo","")) = True \'参数1本地文件,\'参数2 ftp文件名,\'参数3 同步次数 参数4\'用户信息:0单位1科室2用户名 dr("success") = 3 Vars("逻辑1") += 1 \'通知执行下一个任务 Else dr("success") = 1 \'文件下载失败 dr("Failure") += 1 Vars("逻辑1") += 1 \'通知执行下一个任务 End If dr.Save() ElseIf Change = "Up" Dim ftn As String = dr("FullPath") ftn = ftn.Replace(GetConfigValue("LocalPath",""),"") \'合成ftp文件名及路径 If Functions.Execute("FileUpload",dr("FullPath"),ftn) = True dr("success") = 3 Vars("逻辑1") += 1 \'通知执行下一个任务 Else dr("success") = 1 \'文件上传失败 dr("Failure") += 1 Vars("逻辑1") += 1 \'通知执行下一个任务 End If dr.Save() End If End If Else Vars("逻辑1") = -1 End If
[此贴子已经被作者于2015/12/15 15:51:07编辑过]
|