小编a_k*_*a_k的帖子

Mailgun:事件轮询算法

我们正在实施对应用程序中的Mailgun事件跟踪的支持.我们回顾了提议的事件轮询算法,但发现自己对此不太满意.首先,我们不希望丢弃我们已经获取的数据,然后在暂停后从头开始重试.它不是很有效,并且为一个长循环的重试留下了一扇门,因为它不清楚循环应该何时结束.其次,"门槛年龄"似乎是确定"可信度"的关键,但其价值没有定义,只建议一个非常大的"半小时".

我们的理解是D_max,当事件被保证驻留在事件存储中时,事件在一些阈值延迟之后变得"值得信赖",让我们称之为"值得信赖" .如果是这样,我们可以用不同的方式实现这个算法,这样我们就不会获取我们知道不"值得信赖"的数据并利用已经获取的所有数据.

我们将定期获取数据,并在每次迭代时我们将:

  1. 请对事件API指定由上升时间范围的请求T_1T_2 = now() - D_max.对于第一次迭代,T_1可以设置为过去的某个时间,"例如,半小时前".对于后续迭代,T_1将其设置为T_2上一次迭代的值.
  2. 在返回下一页URL时逐个获取所有页面.
  3. 使用所有获取的事件,因为它们都是"值得信赖的".

我的问题是:

  • Q1:这种方法有问题吗?
  • Q2:最低现实价值是D_max多少?显然,我们可以使用"半小时",但我们希望在跟踪事件时更加敏捷,因此知道我们可以设置的最小值是什么并且仍然可靠地获取所有事件会很棒.

谢谢!

mailgun

7
推荐指数
1
解决办法
405
查看次数

标签 统计

mailgun ×1