首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex/ BlazeDS :多个并发BlazeDS请求会导致问题吗?

Flex/ BlazeDS :多个并发BlazeDS请求会导致问题吗?
EN

Stack Overflow用户
提问于 2012-09-11 09:50:48
回答 1查看 960关注 0票数 1

我有一个Flex web应用程序,它使用BlazeDS与服务器进行单通道端点(非安全)通信。

一切都运行得很好,我几乎在任何地方都使用BlazeDS向服务器和数据库发送和检索数据。现在,我正在编写一些新代码来从服务器检索数据,但是服务器必须首先处理这些数据,这需要一些时间(根据请求的不同,可能需要5到30分钟)。

到目前为止,我的设计模式一直是向用户显示忙碌的光标并禁用主应用程序(默认情况下,Flex在禁用应用程序时会模糊该应用程序)。当通信完成时,这通常持续一到两秒。但是,现在通信需要很长时间才能完成,我希望即使来自服务器的进程尚未返回,用户也能够继续使用应用程序。

因此,我想要做的不是禁用主应用程序,以便用户可以在等待数据返回时与其交互。我担心的问题是,如果用户在这段时间(例如,在第一个进程返回之前)使用应用程序向服务器发送另一个进程--这会导致问题吗?也就是说,BlazeDS是否足够智能,能够知道通道繁忙,从而自动对请求进行排队?例如,BlazeDS是否会等到第一个请求返回后再发送第二个或第三个请求,等等?

或者我必须以某种方式手动控制这种通信,以确保它以串行方式发生?如果是这样,有没有什么设计模式来处理这个问题呢?

或者,BlazeDS可以在第一个请求返回之前发送和返回第二个请求吗?

任何建议都非常感谢。我正在寻找避免让用户盯着一个无法使用的应用程序5到30分钟等待数据返回的方法。一个繁忙的游标很好,因为它表明数据还没有返回,但是一个被禁用的主应用程序(无论它是否模糊)是一个问题。

更新:

这里我讨论的是对不同方法的同时调用,而不是对同一个方法的同时调用。因此,如果我有两个方法,我想调用第一个方法,当它等待返回时,调用第二个或第三个方法,它们在第一个方法返回之前(最终)安全返回。BlazeDS是否支持这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-11 14:44:02

据我所知,blazeDS没有这样的排队系统。但是您可以配置并发变量:

指示如何处理对同一服务的多个调用的

值。默认值为multiple。允许使用以下值:

多个- Existing请求不会被取消,开发者有责任通过仔细管理事件流来确保返回数据的一致性。这是默认设置。

single -在该方法上一次只允许发出一个请求;在请求未完成时发出的其他请求会立即在客户端出错,并且不会发送到服务器。

last -发出请求会导致客户端忽略任何当前未完成请求的结果或错误。只有最新请求的结果或错误才会被分派到客户端。这可能会简化客户端应用程序中的事件处理,但应注意仅在可以安全地忽略请求的结果或错误时才使用此模式。

因此,使用"single“可以防止用户多次调用同一方法

如果您想对发送到服务器的消息进行更具体的控制,另一种解决方案是使用command pattern。不需要调用很多方法,而是只调用一个方法,通过网络发送一个命令对象。你会有更多的工作要做,但如果你有一些操作可以在parallele中完成,而其他操作不能完成,这是一个很好的解决方案

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12361696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档