所以我正在为交通模拟CameraDetector系统。并且传入的图像(称为消息)具有ID,牌照和时间戳(LocalDateTime.Now)
问题是我必须编程繁忙。 如您所知,流量在下午5点至6点和上午8点至9点之间处于“繁忙状态”。我必须模拟那些繁忙的时间来生成繁忙的消息。
我该如何使用Spring?
**为澄清消息,在繁忙时间需要更频繁地发送消息。时间戳在生成时就需要保持不变。这是为了模拟线程上的实际工作负载。
文档参考和/或代码确实很有帮助,
MessageGenerateMethod
@Override
public CameraMessage generate() {
randomLicensePlate = String.format("%d-%s%s%s-%d%d%d", r.nextInt(9) + 1, rndChar(),
rndChar(), rndChar(),
r.nextInt(9) + 1, r.nextInt(9) + 1, r.nextInt(9) + 1);
return new CameraMessage(randomIdBound, randomLicensePlate.toString(),
LocalDateTime.now());
}
答案 0 :(得分:0)
制作一个名为int
的{{1}}。高峰时段的频率应较高,非高峰时段的频率应较低。每分钟一次(在系统时钟上),通过代数函数-仅是基本数学函数f(t)来重新校准频率。
使用Spring Scheduling(固定速率= K)每分钟安排一次消息级联事件,该事件发送frequency
条消息,然后重新校准frequency
重复。
级联功能可能一次拍摄所有freqency = f(now()).
条消息都没有意义-可能将它们均匀地或随机地隔开
答案 1 :(得分:-1)
您可以启动一个单独的thread来发送消息,例如让它在消息之间等待n秒; n的范围从您的下限(例如,如果您想每分钟模拟一辆汽车的上限)到上限,例如60。如果您想每分钟模拟20辆车,则可能为3。您还可以通过随机因素调整等待时间。
另一种方法是,以固定的间隔(例如每3秒发射一次),并使用随机因子确定汽车是否展示,从而减少进入的汽车流量一定间隔。