我需要模拟一个实时显示购买情况的小部件。
为了增加统计数据,我想用虚假数据来补充实际购买的数据,这些数据需要随机散发。
所有事件(真实事件和假事件)都进入消息通道并得到处理,然后发送到前端。
所以我需要提供一些我可以控制(运行和停止)的服务
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();
将允许我随时停止事件
有没有工具可以完成这项任务?我对使用无限循环不满意。
答案 0 :(得分:1)
如果您使用的是spring-boot
,为什么不尝试只使用@Scheduled(fixedDelay = 1000)
注释example
示例
@Scheduled(fixedDelay = 1000)
public void scheduleFixedDelayTask() {
System.out.println(
"Fixed delay task - " + System.currentTimeMillis() / 1000);
}
答案 1 :(得分:0)
使用一些Spring Executor并给它执行任务。您可以通过执行者参考来控制它