当前位置: 首页 > 知识库问答 >
问题:

如何记录Spring Scheduler何时运行

蓝苗宣
2023-03-14

我正在为spring调度器使用cron表达式,表达式的值由Springbean使用spel动态提供。

@Autowired
 private PurgeProperties purgeProperties;

@Scheduled(cron = "#{@purgeProperties.cronExpression}", zone = "#{@purgeProperties.zone}")
public void purgeData() throws UnknownHostException
{
           startPurge();
}

一切都正常工作,唯一的问题是我想记录调度程序何时触发,因为cron表达式是由另一个bean在运行时提供的。所以只想知道是否将通过文件提供的正确表达式映射到属性bean。

共有2个答案

杭胜
2023-03-14

CronSequenceGenerator现在已被弃用。我用过这个:

CronExpression cronTrigger = CronExpression.parse(cronExpression);
var next = cronTrigger.next(LocalDateTime.now());
log.info("Next scheduled start planed at {}", next);
赏光霁
2023-03-14

试试下面的代码

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.support.CronSequenceGenerator;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.Date;

''''
''''
@PostConstruct
public void init() {
    CronSequenceGenerator cronTrigger = new CronSequenceGenerator(purgeProperties.cronExpression);
    Date next = cronTrigger.next(new Date());

    System.out.println("Next Execution Time: " + next);
}
 类似资料:
  • 问题内容: 我们在项目中使用LogBack,我想根据一些数据库值配置logger,即如果某个DB值设置为true,则logger应该同时使用文件和数据库附加程序,如果为false,则logger必须仅使用DB附加程序, 我也想保留使用静态最终记录器,因此不会在每次调用记录器时都创建一个新实例, 那我该怎么做呢? 问候, 问题答案: 您应该按照本示例中的说明以编程方式配置Logback 。

  • 在XML中,我想要的配置如下所示(但我不想使用XML):

  • 我正在使用FluentD(v.12最后一个稳定版本)向Kafka发送消息。但是FluentD正在使用一个旧的KafkaProducer,所以记录时间戳总是设置为-1。因此,我必须使用WallclockTimestampExtrator将记录的时间戳设置为消息到达kafka时的时间点。 是否有特定于Kafka Streams的解决方案? 我真的感兴趣的时间戳,是由Fluentd在消息中发送的: “时

  • 我将事件发送到AWS Kinesis,这些事件由AWS lambda函数处理。但是,如果lambda抛出一些错误,则不会丢弃记录,并且会一次又一次地进行处理,从而阻止处理新记录。 我宁愿跳过错误的记录,消化新的记录。我不知道该怎么做。 lambda函数捕获任何异常,因此不应给出任何执行错误。 下面是python中的片段。 我知道lambda应该在“保留”期间重试(默认为24小时),但我希望放弃并最

  • 我想按给定的时间跨度(或开始时间)重播Kinesis记录 用例: 在应用程序失败时,某些流记录可能会被视为已处理,但实际上尚未最终确定。i、 e.未保存在本地数据存储中。因此,在系统恢复时,我们希望在当前检查点的30分钟之前(或任何给定数量)开始处理记录。 我遇到了这个https://github.com/scopely/kinesis-vcr它将运动记录保存到S3中,然后重播S3中的事件 我想知

  • 我使用AudioRecords API在我的应用程序中录制音频(WAV),它成功录制。但是当我在后台运行其他录制应用程序时尝试录制时,我的应用程序的行为很奇怪。 当另一台录音机正在运行时,MediaRecorder API会在尝试开始录制时引发异常,但AudioRecorder API会初始化录音机实例并且不会引发任何异常,因此我无法识别是否有任何录音机实例正在运行。 这种情况已经在三星S3的默认