【问题标题】:How to set unlimited timeout just for exact tasks如何为确切的任务设置无限超时
【发布时间】:2018-02-08 07:57:39
【问题描述】:

我们有一个基于网络的 Windows 软件,拥有成千上万的用户。对于某些操作,我们会向许多用户发送 SMS 和通知。我不想在整个 IIS 设置上设置很长的超时时间。如何设置无限超时仅用于发送消息?

这是向成千上万的用户发送短信的功能:

for x=1 to 1000000
   call sendSMS(PhoneNumber(x),"test message")
next

function sendSMS(PhoneNumber,message)
    posturl="http://URL TO SMS SERVICE"
    posturl=posturl & "username=user"
    posturl=posturl & "&password=password"
    posturl=posturl & "&dstaddress=" & PhoneNumber
    posturl=posturl & "&message=" & server.Urlencode(message)

    set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
    xmlhttp.Open "POST",posturl,false
    xmlhttp.send
    myresult= xmlhttp.responseText
end function

【问题讨论】:

  • 在这样的时代,您应该认真考虑新技术,因为它们提供了更简单的方法(例如 WebSockets/SignalR)。即使您无法完全摆脱经典 ASP,将某些功能移至新堆栈也可以为您节省一些时间。

标签: vbscript asp-classic iis-7 timeout


【解决方案1】:

我认为您正在寻找 Server.ScriptTimeout 属性。您可以将其设置为覆盖脚本仅针对该请求可以运行的最长时间。

Server.ScriptTimeout = 5000 ' or whatever

请注意,对于长时间运行的请求,实际上最好不要让连接保持打开状态,而是将某种消息放在某种队列中并拥有某种后端服务来处理批量处理。但根据您的具体要求,这种方法可能就足够了。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2016-08-15
    相关资源
    最近更新 更多