0

cron スケジュールを使用して、テキスト ファイルの各行を読み取りたいと考えています。

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

しかし、GAE では、テキスト ファイルを変更せずに読み取ることしかできません。

read前の行が既に読み取られており、次の行を読み取る必要があることを確認するにはどうすればよいですか。読み取ったすべての行をデータストアに保存してから、クエリを実行し、テキスト行がデータストアにあるかどうかを確認したくありません。何百万もの行があるためです。

ご意見をお聞かせください。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

そして別の場所で、私は呼び出すことによってdefferedをトリガーします

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 に答える