【发布时间】:2021-10-30 10:26:27
【问题描述】:
我使用Spring Webflux,我的问题是我需要在数据库中写入一条记录并运行一个任务,它将在30秒内更新数据库中的这条记录。
例如,假设我向数据库写入状态为“RAW”的对象。记录写入后,计时器应启动,30 秒后此记录的状态应更改为“DONE”。
【问题讨论】:
标签: spring-webflux project-reactor
我使用Spring Webflux,我的问题是我需要在数据库中写入一条记录并运行一个任务,它将在30秒内更新数据库中的这条记录。
例如,假设我向数据库写入状态为“RAW”的对象。记录写入后,计时器应启动,30 秒后此记录的状态应更改为“DONE”。
【问题讨论】:
标签: spring-webflux project-reactor
您可以使用Scheduler.schedule(Runnable task, long delay, TimeUnit unit) 在记录写入后立即安排任务:
.flatMap(message -> writeRecord(record)
.doFinally(e -> Schedulers.single().schedule(() -> updateRecordStatus(), 30, TimeUnit.SECONDS));
【讨论】: