大壹哥
2014-07-25 19:24
浏览 645
已采纳

java异步调用但是需要实现同步的效果

现在比如说我有10笔交易,我在执行第二笔交易的时候需要根据第一笔交易的结果来判断是否需要做该笔交易。注:如果是同步调用,应该很简单,但是现在因为业务需要不能改成同步调用。求大神支招。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • iteye_16664 2014-07-26 15:47
    已采纳

    任务队列啊。这不就是一个典型的状态机场景吗。每一步执行完成后,在根据执行结果选择下一步进行执行。
    需要注意的是防止重复执行和保证最终一致的机制。
    防止重复执行:每一笔交易给它一个唯一编码,执行成功后再次调用也不予第二次执行。
    保证最终一致:异步执行过程中,如果返回失败则继续重试,设定最大重试次数,超过后转入异常队列,等待人工干预处理,不致于因为异常任务浪费大量处理时间。

    评论
    解决 无用
    打赏 举报
查看更多回答(5条)

相关推荐 更多相似问题