0

我想使用 cron 计划来读取文本文件的每一行。

cron:
- description: read a line of text file
  url: /read
  schedule: every 1 minutes

但是 GAE 只允许读取文本文件而不修改它。

我怎样才能请求read知道上一行已经被读取并且它应该读取下一行。我不想将所有读取的行存储在数据存储中,然后进行查询,检查文本行是否在数据存储中,bla bla,因为我有数百万行。

请指教。我正在考虑 Google Drive Api,对此有什么想法吗?谢谢

更新:我可以这样做吗

with open('text.txt', 'r') as f:
        txt= f.readlines()
f.close()

t = txt[line_num]
DO SOMETHING
line_num = line_num+1
deferred.defer( read_deferred, line_num, _countdown = 60 ) # 60 sec = 1 min

在其他地方,我通过调用触发延迟

deferred.defer( read_deferred, 0, _countdown = 60 ) # 60 sec = 1 min
4

1 回答 1

1

Cron 不会让您保存状态,除非在数据库中。由于您不想使用 DB,因此您可以改用延迟任务,启动它一次,它将一直运行,直到读取最后一行,例如:

def read_deferred(last_pos) :
    f = open( ... )

    if last_pos : f.seek(last_pos)

    # here you read the next line and do whatever you like,
    # just don't go further and return once you hit EOF

    last_pos = f.tell()

    deferred.defer( read_deferred, last_pos, _countdown = 60 ) # 60 sec = 1 min

你第一次这样称呼它:

    deferred.defer( read_deferred, _countdown = 60 ) # 60 sec = 1 min
于 2013-03-21T07:58:28.860 回答