我有一个有趣的问题;我从外部提供商那里获取数据,为了完整起见,让我们说它会像这样回来:
[
[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脚本,执行以下操作;
item_a
或item_b
不同 - >我们更新所有行*/15 * * * * curl my-website.com/api/path-to-update?access_key=my_access_key
这导致数据a)延迟,b)偶尔会减少它应该是什么。
我是否需要设置像RabbitMQ这样的东西来处理数据/支票等的持续流式传输?
答案 0 :(得分:0)
我最终创建了一个单独的电话,对#34;小时"进行最终检查。下一个小时15分钟的数据。
所以电话结束了;
$Api->data_fetch_new_hour();
$Api->data_update_currency_hour();
$Api->data_update_previous_hour();
全部运行在单独的cron作业上。