我正在尝试找到一种在Java应用程序的云中运行异步任务的方法。
例如,我们在GCP中运行我们的应用程序,并且有一种方法可以运行Deferred Tasks到Task Queues。但是任务序列化存在问题。我并不总是能够使整个层次结构可序列化。
也可以使用ExecutorService,但有一个缺点:它无法为具有自动缩放功能的实例运行后台线程。
我的任务的主要目的是将请求线程与长期运行的任务分开。同样最好在单独的机器上运行这些任务。我想应该有某种方法可以实现我的目标,但是我还看不到它。
答案 0 :(得分:2)
当您有要延迟的Java对象时,没有秘密,您必须序列化它们。这可以采取几种形式
在所有这些可能性中,您必须对数据进行序列化(以二进制,JSON,文本,...)
无论如何,对于“长期运行的工作”,全部取决于“长期运行”和所需的资源。如今,Cloud Run凭借15分钟的超时(很快增加了4倍)和2vCPU / 2Gb的内存(很快了)成为了一个很好的选择。如果适合您的要求,我强烈建议您对此进行了解。