以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 普通函数改为异步函数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133906) |
-- 作者:fubblyc -- 发布时间:2019/4/23 14:44:00 -- 普通函数改为异步函数 老师,我有一个APP抛上来数据,FT做的服务接收。 没有做异步函数,多客户同时上传就要等待排队。 但是不知道具体怎么异步函数。。 麻烦老师帮忙看下。。。。 Case "pandian3.htm" Functions.Execute("pandian3",e) 之前的普通函数: \'将APP抛上来的数据存入一个txt文件 Dim fl1 As String = "e:\\wwwroot\\mobo\\" Dim wb As New weui Dim e As RequestEventArgs = args(0) Dim cmd As new SQLCommand cmd.C cmd.CommandTimeOut = 600 Dim space As TimeSpan = Date.now - #1/1/1970 00:00:00# \'从1970年开始算毫秒值 Dim wjm As Long= space.TotalMilliseconds \'需要的时间毫秒值 Dim wjlj As String = fl1 & "盘点\\" & e.PostValues("username") & e.PostValues("dy") & wjm & ".txt" FileSys.CopyFile(fl1 & "wj\\pd.txt", wjlj ,True) FileSys.WriteAllText(wjlj , e.PostValues("txm"), True) \'以上是将APP抛上来的数据存入一个txt文件 \'将txt的数据写入表格 Dim strs As String = FileSys.ReadAllText(wjlj,Encoding.Default) Dim h As String Dim m As String Dim kw As String Dim djbh As String strs = strs.Trim() Dim rs() As String = strs.Split("#") For i As Integer = 0 To rs.Length - 1 Dim cs() As String = rs(i).Split(",") If cs.Length = 6 Then Dim dr2 As DataRow = DataTables("盘点明细表导入").Addnew() dr2("首列") = cs(0) dr2("门店名称") = e.PostValues("username") dr2("姓名") = e.PostValues("dy") dr2("库位") = cs(1) dr2("条码") = cs(3) dr2("数量") = cs(4) dr2("扫码时间") = cs(5) dr2("盘点日期") = Date.Today dr2("上传时间") = Date.now End If Next \'以上是将txt的数据写入表格 \'将table的数据保存到数据库 If Date.now.Hour < 10 Then h = "0" & Date.now.Hour Else h = Date.now.Hour End If If Date.now.Minute < 10 Then m = "0" & Date.now.Minute Else m = Date.now.Minute End If \'这一步我知道可以改成 SqlBulkCopy 的模式快速导入 For Each dr3 As DataRow In DataTables("盘点明细表导入").DataRows dr3("单据编号") = dr3("库位") & h & m cmd.CommandText =" insert into 盘点明细表(首列,门店名称,姓名,条码,扫码时间,数量,盘点日期,库位,上传时间,单据编号,扫码时间条码) values (\'" & dr3("首列") & "\' , \'" & dr3("门店名称") & "\' , \'" & dr3("姓名") & "\' , \'" & dr3("条码") & "\', \'" & dr3("扫码时间") & "\' , \'" & dr3("数量") & "\',\'" & dr3("盘点日期") & "\',\'" & dr3("库位") & "\',\'" & dr3("上传时间") & "\' ,\'" & dr3("单据编号") & "\' ,\'" & dr3("扫码时间条码") & "\' )" cmd.ExecuteNonQuery() dr3.Delete Next \'以上是将table的数据保存到数据库 e.WriteString("服务器接收数据成功") |
-- 作者:有点甜 -- 发布时间:2019/4/23 17:01:00 -- 存入txt,如果不是同一个txt,可以用异步处理。
写入表格,这种用异步,有可能照成冲突的报错的(具体你要自己测试)
为什么要写入表格,然后再从表格那里删除?如果你用insert导入,加入事务,一次性提交。 |
-- 作者:有点甜 -- 发布时间:2019/4/23 17:01:00 -- 改成异步,很简单,如
http://www.foxtable.com/mobilehelp/scr/278.htm
|