2015-08-28 109 views
-5

我的工作中,我必须执行一些事件,记录它们并返回结果的服务。我希望该用户不应该等待记录完成,因此应该得到立竿见影的效果,而记录会继续。对此有何建议?异步编程JAVA

a() 
b() 
. 
. 
. 
g()//all these function are required to compute somethings which user wants 
logging() //it takes time 
return results 
+0

细节你所使用的框架,你已经尝试哪一种方案,是台式机或Web应用程序? – HRgiger

+1

你可以提交你的日志作为单独的任务到另一个线程(或执行服务,返回控制立即) – user1933888

回答

1

如果日志记录是一个开销你,你想那是一个异步过程,则有一定的方法来实现这一目标:

  1. 您可以创建自己的处理程序要做到这一点,即创建一个FIFO队列来提交您的所有日志字符串和其他进程可以读取和打印这些消息作为一个单独的进程,所以在原始流只添加到队列,继续前进,当然这涉及到重新发明轮子的日志信息,但你有自由做正是你需要为您的项目。 你可能想看看这个answer
  2. 您可以利用现有的框架,像log4j的,它提供了许多选项使用特定的异步追加程序来实现异步日志记录。 你可以找到关于它here