gpt4 book ai didi

algorithm - 如何处理经常生成的消息?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:56 25 4
gpt4 key购买 nike

我有以下系统:

producer --->  proxy ---> consumer
<good> 10 msg/s

生成消息的生产者 - 10 msg/second。将 bool 值返回给 consumerproxy 取决于生产者生成的消息数量,如果它生成超过 10,代理返回 false

这是时间戳:

0.10.20.250.260.270.280.290.300.310.320.330.342.02.12.2

出现在 0.1、0.2、0.25 ... 0.32 的消息它们是 good 我们返回 true,0.32 是坏的,因为它是 1 秒内的第 11 条消息,所以我们返回 false

这是一个原型(prototype):

bool shouldProxyAcceptMessage(float timestamp)

如何实现这个算法?

最佳答案

好的,我根据 OP 的评论修改了解决方案。该算法使用两个全局变量,nrMessagesstartTime , 并初始化 startTime到当前时间每当 nrMessage==0 (即当它收到第一条消息时);对于在 1 秒内到达的前 10 个时间戳,它返回 true。一旦收到早于 1 秒的时间戳,它就会重置 nrMessages=0 (因此 startTime 将在下一个时间戳到达时重新初始化)。

我们的隐含假设

long nrMessages = 0; // global variable
long startTime = 0;
boolean shouldProxyAcceptMessage(long timestamp) {
if (nrMessages++ == 0) {
startTime = System.currentTimeMillis()();
}
timeDiff = timestamp-startTime;
if (timeDiff > 1000) {
nrMessages = 0;
return false;
} else {
return nrMessages <= 10;
}
}

关于algorithm - 如何处理经常生成的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36331085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com