防止RemoteObject批处理AMF消息
程序员文章站
2022-07-07 22:21:21
...
问题描述:
如果你在短时内调用同一个java对象上的两个方法,RemoteObject默认会把两个消息作为一个请求提交到java端,假设方法为method1和method2,如果method1做的返回很快,但是method2需要花费一定时间,那么由于被批处理了,java端只有一个线程在处理这两个方法,当method2没完成之前,method1的结果不会返回,这样就出现了一个应该很快有结果的方法在等待一个很耗时间的方法,显然不是我们所需要的。
相关内容可以参考RemoteObject上的concurrency属性,
也可以参考文章:http://*.com/questions/2037613/how-do-i-prevent-remoteobject-from-batching-amf-messages-together
暂时解决方法,把两个方法稍微隔开,如果设个定时器,method1调用后等候100毫秒左右,再发生method2的调用,这样服务器端会区分开,比如用两个线程,那么method1就不用等后method2了。
如果你在短时内调用同一个java对象上的两个方法,RemoteObject默认会把两个消息作为一个请求提交到java端,假设方法为method1和method2,如果method1做的返回很快,但是method2需要花费一定时间,那么由于被批处理了,java端只有一个线程在处理这两个方法,当method2没完成之前,method1的结果不会返回,这样就出现了一个应该很快有结果的方法在等待一个很耗时间的方法,显然不是我们所需要的。
相关内容可以参考RemoteObject上的concurrency属性,
也可以参考文章:http://*.com/questions/2037613/how-do-i-prevent-remoteobject-from-batching-amf-messages-together
暂时解决方法,把两个方法稍微隔开,如果设个定时器,method1调用后等候100毫秒左右,再发生method2的调用,这样服务器端会区分开,比如用两个线程,那么method1就不用等后method2了。