使用看门狗处理传入文件

时间:2019-08-15 12:40:07

标签: python pyspark python-watchdog

我想发送一些传入文件以进行火花处理。通过看门狗on_created事件,我可以在创建文件名后立即获取它。但是,文件每4-5分钟成捆分发。例如(9.30 ---> 3个文件)(9.34 ---> 7个文件)(9.39 ---> 4个文件)。

使用看门狗库,我能够将文件名捕获到一个列表中,该列表将传递给spark以处理为数据帧。

filenames=list()
class CustomFileEventHandler(FileSystemEventHandler):
    def on_created(self, event):
        global timestamp
        file_name = event.src_path
        timestamp = time.time()
        filenames.append(os.path.abspath(file_name))
        while True:
            if time.time() - timestamp > 30:
                process(filenames)

def process(filenames):
    # reset the filenames list
    # join files into one dataframe
    # process dataframe

我要执行的步骤是:

  1. 创建文件后,将其添加到文件名列表中。

  2. 如果在过去30秒钟内未创建任何文件,请将列表中的所有文件名发送出去,

  3. 使用现在重置的文件名列表继续在目录中监视新文件。

如何在不锁定程序的情况下完成此操作?

0 个答案:

没有答案
相关问题