44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
"""工具函数模块"""
|
||
|
||
|
||
def get_f_block_positions(artifact_list):
|
||
"""获取artifact_list中F块的位置"""
|
||
positions = []
|
||
for i, artifact in enumerate(artifact_list):
|
||
if artifact.get("BlockNumber") == "F":
|
||
positions.append(i)
|
||
return positions
|
||
|
||
|
||
def cleanup_old_timestamps(artifact_timestamps, current_artifact_ids=None, max_age_hours=24):
|
||
"""
|
||
清理过期的时间戳记录
|
||
|
||
Args:
|
||
artifact_timestamps: 时间戳字典
|
||
current_artifact_ids: 当前活跃的artifact_id集合,可选
|
||
max_age_hours: 时间戳最大保留时间(小时),默认24小时
|
||
"""
|
||
from datetime import datetime
|
||
|
||
current_time = datetime.now()
|
||
expired_ids = []
|
||
|
||
# 遍历所有存储的时间戳记录
|
||
for artifact_id, timestamp in artifact_timestamps.items():
|
||
# 如果提供了当前活跃ID列表,且该ID不在当前活跃列表中,则检查是否过期
|
||
if current_artifact_ids is None or artifact_id not in current_artifact_ids:
|
||
age = current_time - timestamp
|
||
# 如果超过最大保留时间,则标记为过期
|
||
if age.total_seconds() > max_age_hours * 3600:
|
||
expired_ids.append(artifact_id)
|
||
|
||
# 删除过期的时间戳记录
|
||
for artifact_id in expired_ids:
|
||
del artifact_timestamps[artifact_id]
|
||
|
||
if expired_ids:
|
||
print(f"清理了 {len(expired_ids)} 个过期的时间戳记录: {expired_ids}")
|
||
|
||
return len(expired_ids)
|