在方法返回后运行 Java 代码?

tho*_*ous 5 java methods service return web

我有一个基于 Java 类的 Web 服务。是否可以在被调用操作的 Java 方法中返回确认消息后运行代码。

为了更好地理解,这是工作流程:

  1. 调用我的网络服务的特定操作(方法)
  2. 开始加工
  3. 发送一个确认处理已经开始(这是一个返回值)
  4. 继续处理

线程不起作用,因为线程需要在方法返回之前终止。

有没有人知道如何实现这个场景或替代它?

提前致谢。

Eli*_*nko 4

为此,您将需要使用线程,因为您将程序流分成两部分;返回路径和处理路径是分离且并行的。

如果您需要通过方法的返回来发送方法开始的确认,那么为什么您的服务提供方法不能看起来像这样简单呢?

public Acknowledgement someService() {
  new Thread(new SomeServiceRunnable()).start();
  return new Acknowledgement();
}
Run Code Online (Sandbox Code Playgroud)

服务将启动,然后该方法将返回(从而通知进程已启动),同时处理继续直到线程结束...

我是否在这里遗漏了一些关于您需要实现的目标的信息?

希望这可以帮助。

编辑:

似乎有些答案是为了解决我认为没有作为问题的一部分提出的问题而设计的。以下是我在回答时所做的一些假设,以便阅读此答案的任何人都可以更好地了解它何时不适用于他们的特定情况:

这是针对您只想确认服务从概念上讲已开始执行的情况。该确认不能提供有关此执行的任何部分或其初始化是否成功的信息,仅表明它在概念上已开始,也就是说,关联的 Runnables run() 将在某个时刻被调用。

当然,如果您希望开始执行并且调用者返回,那么确认的重要性必然会受到返回之前等待执行的任务数量的限制,这里不等待并返回确认立即,因此无法提供额外信息。