使用dogpi缓存基于修改时间的下载文件

2024-05-21 04:57:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,可以下载一个大文件(约150MB),并将数据解析为更有用的文本格式文件。下载的过程,尤其是解析过程,很慢(总共大约20分钟),所以我想缓存结果。在

下载的结果是一堆文件,解析的结果是一个文件,所以我可以手动检查这些文件是否存在,如果存在,检查它们的修改时间;但是,由于我已经在代码的其他地方使用带有redis后端的dogpile来进行web服务调用,我想知道dogpile是否可以用于此目的?在

所以我的问题是:dogpile可以根据文件的修改时间来缓存文件吗?在


Tags: 文件数据文本格式代码程序目的redisweb
1条回答
网友
1楼 · 发布于 2024-05-21 04:57:39

为什么不想把程序分成几个部分:

  • 下载器

  • 解析器和保护程序

  • 有成效的员工

您可以使用缓存变量来存储所需的值,这些值将在文件更新时更新。在

   import os
   import threading
   _lock_services=threading.Lock()
   tmp_file="/tmp/txt.json"
   update_time_sec=3300
   with _lock_services:
   # if file was created more the 50min ago
   # here you can check if file was updated and update your cache variable
        if os.path.getctime(tmp_file) < (time.time() - update_time_sec):
            os.system("%s  >%s" %("echo '{}'",tmp_file))

        with open(tmp_file,"r") as json_data:
            cache_variable = json.load(json_data)

相关问题 更多 >