我有一个有趣的问题;我从外部提供者获取数据,为了完整性,假设它返回如下:
[
[id: 1pm, item_a: 55, item_b: 180], // hour's passed so data is finished.
[id: 2pm, item_a: 55, item_b: 180], // hour's passed so data is finished.
[id: 3pm, item_a: 55, item_b: 180], // hour's passed so data is finished.
[id: 4pm, item_a: 55, item_b: 180], // hour's passed so data is finished.
[id: 5pm, item_a: 0, item_b: 0], // current hour - data keeps updating periodically
]
我每小时运行一次cron调用,以获取最近一小时的元素(
即
5pm
在上述组中
).
请注意
item_a
&
item_b
为0。这是因为每小时输入的数据不断从第三方更新。这
不在设定的时间段内
,这使得我很难准确地收集数据。当我为大约1400个不同的对象获取数据时,每个对象都会在第三方端以随机间隔进行更新,这使得我在一个小时结束后会得到错误的数据。
我目前每15分钟运行一次cron作业,运行一个内部php脚本,该脚本执行以下操作:;
-
获取最近的行
-
对照第三方API进行检查
-
如果
项目\u a
或
项目\u b
不同->我们更新所有行
-
否则,脚本将退出自身。
*/15 * * * * curl my-website.com/api/path-to-update?access_key=my_access_key
这导致数据a)延迟,b)偶尔低于应有的水平。
我是否需要设置RabbitMQ之类的东西来处理持续的数据流/检查/等等?