Java Spring 调度程序在 PCF 服务器中不工作

Java Spring Scheduler not working in PCF server

我有一个 spring 引导项目,其中 spring 调度程序工作正常,因为我使用 Cron 表达式在本地系统的调度程序方法中添加了记录器。

问题:

当通过 PCF(Pivotal Cloud Foundary)部署相同的 spring 启动应用程序时,它不会启用调度程序并且不会打印任何日志,也不会在与调度程序相关的 pcf 日志中显示任何错误。

虽然如果我通过邮递员点击任何控制器,日志正在打印但不是调度程序。

我还在应用程序的 pcf 环境变量中提供了每分钟的 cron 表达式值,并重新启动了应用程序。但这并没有帮助。

任何人都可以在这个问题上给我一些建议吗?

预先感谢您抽出宝贵的时间!!

当您在 PCF Cloud space 中部署您的应用程序时,它会获取您的代码,针对可用的 buildpack 扫描它,除非用户明确提供,然后使用代码 build-pack 创建一个也称为 Droplet 的容器映像和基础容器。

如果您使用云配置来管理 spring 启动调度程序的配置,它会使用自动配置在运行时加载属性。在某些情况下,由于 OS 配置和这些配置在运行时加载的差异,您的应用程序期望的时区与服务器理解的时区不匹配。

大多数情况下,在推送应用程序时,可以通过在 PCF 清单文件或命令行中显式定义时区配置来解决。

例如设置环境 TZ 变量。

cf set-env {app-name} TZ 'America/Chicago'

或者在 manifest.yml 文件中添加以下内容:

环境: TZ:America/Chicago