gpt4 book ai didi

java - 为什么我的 @Scheduled Spring Boot 任务在 Azure 中运行不一致?

转载 作者:行者123 更新时间:2023-12-03 03:48:08 26 4
gpt4 key购买 nike

我在 Azure 中部署了一个 Spring Boot 微服务,该微服务应该使用 @Scheduled Spring 注解以固定速率运行。当我在本地运行它时,它的性能完全符合预期。当部署在 Azure 中时,关于何时按计划运行似乎是一个复杂的问题。

在非高峰时段(~00:00 - 8:00AM),它似乎按计划工作,但有时会有一些变化。但是,在高峰营业时间(中午 12:00 - 晚上 18:00),预定时间可能会有很大变化。

在此期间,应每分钟运行一次的服务可能每 5 分钟运行一次。要求服务保持正常运行(不能在计划时重新启动服务),它有一个循环的客户列表(每当第一次启动或通过列表时,都会从数据库中获取该列表) )。它每次安排时都会服务一定数量的客户,然后继续处理下一组固定的客户,直到处理完所有客户,然后重新开始该流程。

这是由于高峰时段的节流造成的吗?有谁知道让我的服务按计划启动的好方法,或者 @Scheduled 注释的 Azure 替代方案?

谢谢

最佳答案

使用fixedRate

fixedRate :使 Spring 定期运行任务,即使最后一次调用可能仍在运行。

fixedDelay :专门控制上次执行完成后下次执行的时间。在代码中:

@Scheduled(fixedDelay=5000)
public void updateEmployeeInventory(){

}

@Scheduled(fixedRate=5000)
public void updateEmployeeInventory(){

}

我从那里得到了答案How wait @Scheduled till previous task is not finished?

关于java - 为什么我的 @Scheduled Spring Boot 任务在 Azure 中运行不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68214867/

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