我需要模拟一个实时显示购买的小部件。
为了增加统计数据,我想用虚假数据来增强真实购买量,这些数据需要以随机间隔发出。
所有事件(真假事件)都进入消息通道并进行处理,然后发送到前端。
所以我需要想出一些我可以控制(运行和停止)的服务
public class FakeDataGenerator {
private boolean run;
private Queue queue;
public void run() {
run = true;
while(run) {
queue.push(generateFakeOne())
TimeUnit.SECONDS.sleep(ThreadLocalRandom.current().nextInt(1, 30));
}
}
public void stop() {
run = false;
}
private Purchase generateFakeOne() {
// ... some faking logic
}
}
generator.stop();
generator.run();
将开始以随机间隔发出事件,generator.stop();
将允许我随时停止它
有没有工具可以完成这样的任务?我不满意使用无限循环。
如果您
正在使用spring-boot
为什么不尝试仅使用注释示例@Scheduled(fixedDelay = 1000)
例
@Scheduled(fixedDelay = 1000)
public void scheduleFixedDelayTask() {
System.out.println(
"Fixed delay task - " + System.currentTimeMillis() / 1000);
}
使用一些 Spring Executor 并给它一个要执行的任务。您可以通过执行器引用来控制它