gpt4 book ai didi

java - 主线程可以在 RESTful Web 服务中结束,而工作线程继续吗?

转载 作者:行者123 更新时间:2023-11-30 04:57:57 25 4
gpt4 key购买 nike

我有一个 Java RESTful Web 服务,大约每 10 秒就会被另一个进程调用一次。如果条件合适,Web 服务需要执行可能很长的 ETL 过程(例如 10 - 20 秒)。但是,我们希望立即返回调用应用程序,指示有效负载已成功传递到 Web 服务。

要求摘要:

  • 验证身份验证和输入参数。
  • 如果验证失败,则以 XML 形式返回错误。
  • 启动线程执行 ETL 过程。该过程仅在特定条件下才会进行。
  • 返回 XML,指示已交付有效负载并已通过输入验证。

我已经对此进行了编码,并且它似乎运行正确。但这似乎不对。我创建的线程可能会比主 Web 服务线程运行更长时间。

有人想向我指出更好的方法吗?

最佳答案

这正是正确的做法。该解决方案有哪些“看起来不正确”的地方?

我唯一的建议是你不应该随意启动线程。您应该有某种共享的 ExecutorService 来管理这些 ETL 进程线程。这将使您了解已启动和仍在运行的内容,以及限制/控制后台进程数量的能力(并可能处理任何恶意执行)。

您可能还想为启动的进程生成某种“jobId”并将其返回给调用者。然后您可以添加对 api 的调用,客户端可以使用该调用来检查作业的状态。

关于java - 主线程可以在 RESTful Web 服务中结束,而工作线程继续吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7930472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com