Java + spring - 在无限循环中以随机间隔运行动作

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


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


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


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


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();允许我随时停止它


有什么工具可以完成这样的任务吗?我对使用无限循环不满意。


桃花长相依
浏览 148回答 1
1回答

哔哔one

如果您正在使用spring-boot为什么不尝试仅使用@Scheduled(fixedDelay = 1000)注释示例例子@Scheduled(fixedDelay = 1000) public void scheduleFixedDelayTask() {System.out.println(  "Fixed delay task - " + System.currentTimeMillis() / 1000);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java