【发布时间】:2022-04-27 21:48:08
【问题描述】:
我有一个 API,我需要运行一些测试。我们已经完成了压力和负载测试,但最好的测试方法是运行一些真实的数据。我有一个包含过去几年所有历史数据的事实表。目标是找到该历史记录的繁忙窗口,并针对我们的 API “重放”它。
有没有办法在 Python 中“重放时间序列”数据并模拟 API 请求活动。
输入数据是这样的,一天有几十万行:
TimeStamp Input Data
------------------------------------------
2020-01-01 00:00:01:231 ABC
2020-01-01 00:00:01:456 ABD
2020-01-01 00:00:01:789 XYZ
...
我首先想到的是将每一行转换为一个cron-entry,所以当每一行被激活时,它会触发一个对API的请求,并将数据条目作为payload。
但是,这种方法增加了启动 Python 进程的大量开销,并且时间分布被破坏:在一秒钟内,它可能会启动大量进程、加载库等。
有没有办法可以启动一个长时间运行的 Python 进程以根据时间序列数据完美重播? (最好在几毫秒内准确)
差不多:
while True:
currenttime = datetime.now()
# find from table rows with currentime
# make web requests with those rows
然后这变得同步,每个循环都需要数据库查找..
【问题讨论】:
标签: python multithreading cron python-requests