Apache flex Flex远程对象多个并行调用

Apache flex Flex远程对象多个并行调用,apache-flex,object,parallel-processing,Apache Flex,Object,Parallel Processing,我使用的是Flash Builder 4.5,我使用的是带有amfphp的远程对象,当我同时调用两个方法(method1和method2)时,method2的响应总是在method1的响应之后到达,尽管method2返回结果的速度要快得多 以下是场景: 我设置了一个远程对象,它引用一个远程php类“Newsletter”,其中包含sendNewsletter和getProgress方法。 代码如下: -sendNewsletter()读取电子邮件存档并发送新闻稿。在每封电子邮件发送后,它都会

我使用的是Flash Builder 4.5,我使用的是带有amfphp的远程对象,当我同时调用两个方法(method1和method2)时,method2的响应总是在method1的响应之后到达,尽管method2返回结果的速度要快得多

以下是场景: 我设置了一个远程对象,它引用一个远程php类“Newsletter”,其中包含sendNewsletter和getProgress方法。 代码如下:

-sendNewsletter()读取电子邮件存档并发送新闻稿。在每封电子邮件发送后,它都会将日志写入数据库。 -getProgress()读取sendNewsletter编写的日志,计算已发送的电子邮件数量,将其与必须发送的电子邮件总数进行比较,并返回进度百分比

从flex界面中,用户选择要发送的新闻稿并单击“发送”按钮,该按钮调用调用sendNewsletter()的函数,然后实例化对getProgress的调用循环(正如您所看到的,当getProgress返回某个内容时,它会调用setProgress,它会更新进度条并再次调用getProgress,直到进度百分比达到100%

因此,在调用sendNewsletter()之后,我立即对同一个remoteClass()调用getProgress()。 sendNewsletter()可能需要几分钟才能完成(在我发送4封电子邮件的测试中,大约需要4秒钟,因此我认为发送数千封电子邮件需要更多时间!!),而我在这里遇到的麻烦是,getProgress()结果只有在sendNewsletter()结束执行后才能到达,而我希望实现的是: -致电sendNewsletter() -sendNewsletter()多次调用getProgress()以获取进度百分比:

我现在得到的是:

调用sendNewsletter()-------------------------->响应 调用getProgress()------------------------------------>sendNewsletter()后的响应

我想要达到的目标:

sendNewsletter()--------------------------------------------------------------------------->response()

getProgress()-->response,getProgress()再次-->response-->getProgress()-->respone-->等

我读了很多关于如何解决这个问题的帖子,但没有一个解决方案适合我。 我试图通过创建两个远程对象来“模拟”不同的通道,其端点设置为一次为gateway.php?parallel=0,一次为gateway.php?parallel=1,但flash builder仍然在一个大请求中发送所有内容,并在一个大http包中获得响应(我需要两个不同的包,因为与getProgress相比,sendNewsletter需要花费更长的时间才能完成)

我还尝试在sendNewsletter()之后延迟getProgress()的调用,使用500毫秒的计时器,flash builder会进行两次不同的调用(我可以在firebug中看到它们),但是getProgress的调用在sendNewsletter()之后会给出响应

我也试着用这种方式给sendNewsletter打电话 这个.myNewsletter.getOperation(“sendNewsletter”).send(idNewsletter) 这个.myNewsletter.getOperation(“sendNewsletter”).cancel()文件 为了让flash builder忘记响应但没有办法

到目前为止,我找到的唯一解决方法是创建一个公共httpservice,它引用一个php来实例化新闻稿类并调用getProgress方法。 通过使用两个不同的通道,我可以在执行sendNewsletter时调用getProgress httpservice。它可以工作,但我不喜欢它,我不想为我需要在后台调用的每个方法创建httpservice,所以我只想用远程对象实现这一点

有人解决过同样的问题吗? 你这个闪光建筑大师,我知道你在附近,请帮帮我!!!!! 提前感谢!!! 再见 卢克

附言。
很抱歉,如果这篇文章有点长,但是情况很复杂。

我不知道你到底想要什么

但在处理远程对象时,有一个最佳实践可用于处理从单个远程对象并行到达的响应

因此,尝试在服务呼叫中添加响应者,如

remoteObject.methodCall().addResponder(new YourResponder(resultEvent, faultEvent));
因此,当特定的响应到来时,它将由不同的定制响应者处理。 到那时,你将能够单独处理你的回答