gpt4 book ai didi

Heroku worker 工作。如何设置工作进程以及 play framework web

转载 作者:行者123 更新时间:2023-12-02 05:07:26 24 4
gpt4 key购买 nike

如果这个问题已经得到解答,我深表歉意;我的搜索没有显示任何内容。

我在 Heroku 上部署了一个 Play 应用程序。我在同一个构建中还有另一个带有 main 方法的 Worker 类。我想以 worker 而不是网络的身份运行该类(class)。当我尝试运行它时,它给了我 ClassDefNotFound 异常,这很明显,因为我没有为此进程提供类路径。

我如何确定类路径应该是什么( jar 和类)?或者还有其他方法吗?

将该类放在单独的工作进程中的原因是为了使其独立于 Web 应用程序进行扩展。

这里有更多的细节。我的 Procfile 有以下条目,

web: target/start -Dhttp.port=$PORT -DapplyEvolutions.default=true -DapplyDownEvolutions.default=true -Ddb.default.url=$DATABASE_URL ${JAVA_OPTS}
worker: target/start com/company/test/worker/WorkerApplication ${JAVA_OPTS}

worker 入口只有需要运行的类“WorkerApplication”的名称,但 Heroku 无法找到这些类文件和其他依赖项。

最佳答案

您需要创建多个 Global objects在您的项目中为每个入口点使用不同的名称。然后在您的 Procfile 中,您使用 application.global 属性指定您从哪一个开始,如下所示:

web:     target/start -Dhttp.port=${PORT} ${JAVA_OPTS} -Dapplication.global=Web
worker: target/start -Dhttp.port=${PORT} ${JAVA_OPTS} -Dapplication.global=Worker

我还没有在 Play 项目中尝试过这个,但你也可以让它与 sbt-start-script plugin 一起工作。使用正确的类路径创建自定义 target/start 脚本。

关于Heroku worker 工作。如何设置工作进程以及 play framework web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061082/

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