DomainMessage domainMessage= event.getDomainMessage();
JdonMessageResult jdonmsg=(JdonMessageResult)domainMessage.getEventResult(); //速度很慢
异步编程与同步区别在于编程思路有些区别,原来调用者发出一个请求必然有一个响应,调用一个方法调用肯定有一个方法返回结果,现在将这一去一回分成两个事件,两个步骤,而不是都在调用者这里全部完成。
2014-05-08 13:41 "@wxjwzx"的内容
比如更新删除之类的,如果不等返回结果就进行下面操作的话,万一操作失败,会让用户感觉是程序有问题 ...
只要你保证你的服务器负载不会满负荷,这种情况基本不会发生。相反,如果你的服务器负载满负荷,同步操作后也会让用户堵塞等待很长时间,用户也会感觉程序有问题的。
在服务器CPU有空闲的情况下,采取异步操作,比如更新完成后,可以直接更新内存中的状态,更新完成后就返回结果“成功”给用户,而不必等DB等慢设备完成后才返回结果“成功”给用户。用户看到“成功”,然后再发出GET操作获得新结果时,这段时间差其实服务器端已经更新完DB的慢设备了,所以,用户获得GET结果都是最新结果。
用新的思路和办法试验一下吧,如果不行,再改回同步。
当然,这个方法我还没有试验过,在以后版本中会引入lambda和RxJava。