python - Python多次返回相同时间戳的问题
问题描述
我正在使用一个 API,它使用回调函数每秒最多发送 2000 次数据。函数的主体获取数据参数(API 调用函数使用),附加时间戳(使用 datetime.now().timestamp()),然后将其发送到队列,它将保存在采集完成后的文件。
我面临的问题是我多次获得相同的时间戳,但数据不同。以下是一些已保存数据的示例:
数据-----时间戳
3258 1595943590.058758
3246 1595943590.058758
3246 1595943590.058758
3248 1595943590.058758
3254 1595943590.058758
3246 1595943590.058758
我尝试改用 time.time() ,但问题仍然存在:
2986 1595944140.3182354
2986 1595944140.3182354
2984 1595944140.3182354
2984 1595944140.3182354
2984 1595944140.3182354
2986 1595944140.3182354
2986 1595944140.3182354
2982 1595944140.3182354
2980 1595944140.3182354
2986 1595944140.3182354
API发送数据的速度太快以至于时间更新不够快的问题?有没有更准确的获取时间的方法?
#part of a class
def apiFunc(self, data):
if data:
d = (data, time.time())
self.storage.put(d)
return True
return False
解决方案
也许将 的精度time.perf_counter
与 的意义结合起来time.time
。这是代码和输出(左边是纯time.time
,右边是我的建议):
>>> if 1:
import time
delta = time.time() - time.perf_counter()
timestamps = []
for _ in range(10):
pure = time.time()
mine = time.perf_counter() + delta
timestamps.append((pure, mine))
for row in timestamps:
print(row)
(1595947258.0029619, 1595947258.0029738)
(1595947258.0029619, 1595947258.0029812)
(1595947258.0029619, 1595947258.0029826)
(1595947258.0029619, 1595947258.002984)
(1595947258.0029619, 1595947258.0029855)
(1595947258.0029619, 1595947258.0029874)
(1595947258.0029619, 1595947258.0029886)
(1595947258.0029619, 1595947258.00299)
(1595947258.0029619, 1595947258.0029914)
(1595947258.0029619, 1595947258.002993)
摘自更长的输出,其中纯时间最终发生了变化(不得不尝试数千行):
...
(1595947517.2481732, 1595947517.2532165)
(1595947517.2481732, 1595947517.2532175)
(1595947517.2481732, 1595947517.2532187)
(1595947517.256172, 1595947517.2532716)
(1595947517.256172, 1595947517.253275)
(1595947517.256172, 1595947517.253278)
...
推荐阅读
- authentication - 收到登录消息时,QuickFix 启动器应用程序注销
- x86 - 英特尔架构中的锁语义
- java - mvn jetty:运行失败原因:java.lang.RuntimeException:错误扫描条目META-INF/versions/9/javax/xml/bind/ModuleUtil.class
- linux - 如何重置keytab kerberos?
- python - 如何使用 int8 为 Resnet50v1.5 运行 NVIDIA DeepLearningExamples
- r - 收集具有多个标题行的数据集
- html - 检查用户是否滚动到数据表的底部
- javascript - 如何仅在 setstate 之后渲染页面
- javascript - 打印后电子崩溃
- flutter - 我可以将 fcm 通知发送到 Firebase UserIds 而不是设备令牌吗?