我有两个从jquery到Web服务的ajax调用。
第一次调用(GetMessages
)在javascript ()中开始一个间隔,setInterval
并返回存储在会话变量中的消息的字符串数组。
第二个调用(UploadUsers
)上传用户并将状态保存在要返回的会话中GetMessages
。因此,UploadUsers将消息添加到Session,而GetMessages检索消息并将其显示给客户端。
问题是即使我异步调用这两个方法,也要GetMessages
等到UploadUsers
完成。它只是加载。
我什至在要添加的每个用户之间放置一个thread.sleep,并且我希望GetMessages
返回“分别添加1/10个用户”,“添加2/10个用户”,每个返回单独的调用。
发生的事情是GetMessages
直到UploadUsers
完成才返回任何内容,然后立即带走所有文本。
我有很多代码,所以我不知道要放什么,但是事情就这样了:
UploadUsers.aspx
callAsynchMethod('ClientStatusHandler.asmx/GetMessages',
'', printMessages, stopPollingError);
callAsynchMethod('ClientStatusHandler.asmx/StartRetrievingLeads',
data, stopPolling, stopPollingError);
Site.js
function callAsynchMethod(url, keyValue, callBack, callBackError) {
$.ajax({
type: "POST",
url: url,
data: keyValue,
contentType: "application/json; charset=utf-8",
success: callBack,
error:callBackError
});
}
ClientStatusHandler.asmx.cs
const string key = "LUMessages";
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod(EnableSession = true)]
public string[] GetMessages()
{
if (Session[key] != null)
{
string[] messages = ((IList<string>)Session[key]).ToArray();
((IList<string>)Session[key]).Clear();
return messages;
}
return new string[] { };
}
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod(EnableSession = true)]
public string[] UploadUsers()
{
//This function adds a user and calls SaveMessageToQueue
//for every user.
//I see the message being entered into the session and
//I call Thread.Sleep(10000)
//between messages.
}
private void SaveMessageToQueue(string m)
{
IList<string> messageQueue = (List<string>)HttpContext.Current.
Session["LUMessages"];
messageQueue.Add(m);
}
这是因为您已启用会话,并且会话锁定了所有呼叫,直到它们返回。
我是web服务开发的初学者。我们正在使用Spring3用java构建RESTWeb应用程序。 我们正在使用的Web服务具有异步登录方法。我们为他们提供了一个回调监听器URL,他们的服务在其中发回响应。 因此,当我们发送登录请求时,我们会收到一个空白响应作为确认。和服务发送一个响应,其中包含侦听器URL上的实际数据。 请帮助,我应该如何设计/实现调用登录服务作为同步调用?谢谢 编辑:下面是回发消息的
我正在使用的应用程序将按以下顺序使用2个REST web服务: 1) 计数记录-了解特定时间范围内的记录数。 2)获取记录——一旦我们有了记录的数量,我们就需要调用这项服务。但是这项服务有一个门槛来一次性获取10K记录。假设第一个服务在特定的时间间隔内告诉我,它有100K的记录,那么我需要以分页方式调用第二个网络服务10次,考虑到它的阈值是一次10K的。 因此,如果我将进行10次同步调用,我的应用
关于是否使用RMQ / Kafka / Http等进行微服务之间通信的讨论,我有点不知所措。我希望对此有所了解。首先,我的客户端是一个移动应用程序,它进行同步调用并等待响应。 凭直觉,我不希望java服务器和Python分类器之间的内部通信是同步的,因为我希望有高吞吐量,因为我可以让数千或数百万(希望如此)客户机同时发送请求。 如何进行非阻塞请求-响应,并将请求检索到同一客户端? 客户
问题内容: 我正在尝试使用两个线程将值添加到中。我想要的是,当一个线程正在添加值时,另一个线程不应干涉,因此我使用了该方法。但是看来,如果我没有在对象上显式同步,则添加操作将以不同步的方式进行。 没有显式的同步块: 我得到的输出是: 在未注释显式同步块的情况下,我在添加时停止了来自其他线程的干扰。一旦线程获得了锁,它将一直执行直到完成。 取消注释同步块后的样本输出: 那么为什么不进行同步呢? 问题
问题内容: 我正在研究Node.js的模块来解决问题。我已经进行了一些测试: 我可以确定在完成对Trulu的日志调用之前永远不会调用它吗?换句话说,是否可以肯定在Trulu日志被调用之前调用所有函数和最终回调? 问题答案: 我可以确定在对async.parallel的调用完成之前永远不会调用Trulu日志调用吗? 电话本身,是的。 换句话说,是所有功能 我想是的,尽管文档没有提及。但是,我希望不会
我必须使用SpringBoot2.0.5从web应用程序构建中调用远程RESTendpoint 我可以使用HttpURLConnection,但由于Spring使用RestTemplate,我检查了它是什么,发现它很快就会被弃用: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/clien