我正在寻找一种在反应式API中使用计划任务的方法。 我知道它使用线程池,因此与webflux组件不太兼容。 你有等同的工作要做吗?
非常感谢
Saveriu
答案 0 :(得分:1)
有人对此有更新吗?这正是我们所担心的,最终我们使用了计划每10秒运行一次的aws-lambda。该lambda直接从我们的应用程序调用终结点。
答案 1 :(得分:1)
有几种方法可以做到。考虑到您想如何安排它,您也可以使用以下方法。
@Configuration
class ApplicationConfiguration() {
@PostConstruct
fun init() {
Flux.interval(Duration.ofMinutes(12))
.onBackpressureDrop()
.flatMap { /* some task that return Mono<T> */ }
.subscribeOn(Schedulers.boundedElastic())
.subscribe()
}
}
请注意,除非呼叫阻塞,否则不需要 subscribeOn(Schedulers.boundedElastic())
。我也在使用 onBackpressureDrop
,但您的要求可能与此不同。
答案 2 :(得分:0)
Webflux有它自己的调度程序,我猜这种方式应该这样做:
Disposable schedulePeriodically(Runnable task, long initialDelay, long period, TimeUnit unit);
答案 3 :(得分:0)
您可以尝试在 #include <stdio.h>
int int_len(int nb) {
int len = 1;
while (nb > 0){
len++;
nb /= 10;
}
return len - 1;
}
void ft_combi(int n)
{
int combi = n / n; // add error if n = 0
for (int i = 0; i < n; i++)
combi *= 10;
for (int i = 0; i < combi; i++) {
for (int j = 0; j > int_len(i) - n; j--)
printf("0");
if (i == 0)
printf("\n");
else
printf("%d\n", i);
}
}
int main()
{
ft_combi(2);
}
方法中使用 Schedulers.immediate()
:
@Scheduled
因此,任务在提交它们的线程上运行。