gpt4 book ai didi

java - 云环境中的异步任务

转载 作者:行者123 更新时间:2023-12-02 08:29:52 28 4
gpt4 key购买 nike

我正在尝试找到一种在云中为 Java 应用程序运行异步任务的方法。

例如,我们正在 GCP 中运行我们的应用程序,并且有一种方法可以运行 Deferred Tasks通过Task Queues 。但任务的序列化存在问题。我并不总是能够使整个层次结构可序列化。

也可以使用 ExecutorService ,但有一个缺点:它无法为具有自动缩放功能的实例运行后台线程。

我的任务的主要目的是将请求线程与长时间运行的任务分开。此外,最好在不同的机器上运行这些任务。我想应该有某种方法可以实现我的目标,但我还看不到。

最佳答案

当你有想要推迟的 Java 对象时,没有什么 secret ,你必须序列化它们。这可以采取多种形式

  • 实现可序列化接口(interface)并使用 Cloud Task
  • 将对象存储在某个位置(firestore、Google Storage),并且仅将引用(Firestore 的 documentId、GCS 的 BlobId)传递给任务,以便重新加载数据并进行处理
  • 将消息发布到 PubSub 并使用 PubSub 消息中嵌入的数据触发您的端点

在所有这些可能性中,您必须序列化数据(二进制、JSON、文本......)

无论如何,对于“长时间运行的作业”,一切都取决于“长时间”和所需的资源。如今,Cloud Run 是一个很好的选择,它具有 15 分钟的超时时间(很快会增加 4 倍)和 2vCPU/2Gb 内存(很快会增加)。如果这符合您的要求,我强烈建议您查看一下。

  • 它是无服务器的
  • 它是可移植的
  • 您在另一个虚拟机上执行运行

关于java - 云环境中的异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62004416/

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