我在寻找如何优化下面的过程中的一些建议:
应用程序读取CSV文件。 对于文件中的每一行被创建的XML消息的每个XML消息经由HttpWebRequest的张贴到URL
这个过程被设计用来处理邮件的低量(最多同时约200),联合国令人惊讶认为发生了变化,它现在预计最多可处理约3000在同一时间。
用于发布消息的代码是在这里:
Public Function PostXml(ByVal XML As String) As HttpStatusCode
Try
Dim Bytes As Byte() = Me.Encoding.GetBytes(XML)
Dim HTTPRequest As HttpWebRequest = DirectCast(WebRequest.Create(Me.PostURL), HttpWebRequest)
With HTTPRequest
.Method = "POST"
.ContentLength = Bytes.Length
.ContentType = "text/xml"
.Credentials = New NetworkCredential(_Settings.NTSPostUsernameCurrent, _Settings.NTSPostPasswordCurrent)
End With
Using RequestStream As Stream = HTTPRequest.GetRequestStream()
RequestStream.Write(Bytes, 0, Bytes.Length)
RequestStream.Close()
End Using
Using Response As HttpWebResponse = DirectCast(HTTPRequest.GetResponse(), HttpWebResponse)
Return Response.StatusCode
End Using
Catch ex As WebException
If ex.Message.Contains("(500) Internal Server Error") Then
Return HttpStatusCode.InternalServerError
Else
Throw
End If
End Try
可这在缓存中使用的连接方面进行优化? 目前有在该行一noticable延迟: Using Response As HttpWebResponse
而连接而成。 是否有缓存此所以相同的连接用于为每个消息被创建的所有3000条消息,而不是一个新的连接的方式是什么?
任何建议感激地收到。
**更新。 感谢您的答复。 为了澄清,我目前仅限于发送多条消息,由于系统其它地方的限制。 有在响应在另一端(接收器)的请求的延迟noticable但是这是我的控制之外。 我想,以保证发送的过程尽可能(外部因素仍然)为有效。