gpt4 book ai didi

java - x 天后使用 Spring 运行一次任务

转载 作者:行者123 更新时间:2023-11-30 06:54:47 25 4
gpt4 key购买 nike

我正在开发一个应用程序,其中有报价还价。当我创建报价时,我想安排一个任务在 5 天后运行,以检查是否有任何还价。如果没有任何还价,则报价状态将设置为已过期。

我已阅读有关 @Scheduled 注释的信息,但它仅每 x 天运行一项任务,但我希望仅在创建优惠后运行任务,并且每个新优惠仅运行一次。我怎样才能实现这个目标?谢谢

最佳答案

嗨,我迟到了,不是 spring 专家,但我有一个解决方案,使用注释创建计划组件更容易

class OfferClass {
public Date creationDate;
// .... user related info
}

@EnableScheduling
@Component
public class OfferManager {
private static final long interval_milliSeconds = 60*60*1000; // scheduled to run once every hour
public List<OfferClass> offersList = new ArrayList<>();

@Scheduled(fixedRate = interval_milliSeconds)
public void timeout() {
Date now = new Date(); // current timestamp
for (OfferClass offer:this.offersList) {
// check if 5 days are spent
if (now.getTime() - offer.date.getTime() > 5 days) {
// Do your action and remove the offer from the offersList
this.offersList.remove(offer)
}
}
}

}

// Usage
void main() {
// Add an offer to the array
offerClass newOffer = new offerClass();
newOffer.creationDate = new Date() // set start date
// Add offer to offer manager and wait for magic
OfferManager.offersList.add(newOffer)
}

我知道这不是最好的答案和优化,但我是一个 iOS 开发者,不是 spring,快速改进将是深入研究“@Scheduled(fixedRate=...)”注释,可能使用其他选项,例如 cron 或fixeDelay 可以做得更好祝你好运

关于java - x 天后使用 Spring 运行一次任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42058976/

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