Java + 以随机间隔无限循环运行操作



我需要模拟一个实时显示购买的小部件。

为了增加统计数据,我想用虚假数据来增强真实购买量,这些数据需要以随机间隔发出。

所有事件(真假事件)都进入消息通道并进行处理,然后发送到前端。

所以我需要想出一些我可以控制(运行和停止)的服务

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 并给它一个要执行的任务。您可以通过执行器引用来控制它

最新更新