0

まず、私はPythonが初めてです。今私の質問は次のようになります:

リモートマシンでコールバックスクリプトを実行してデータを送信し、ローカルマシンでスクリプトを実行してそのデータを処理し、ファイルに書き込みます。ここで、私の別のスクリプトで、ファイル データを 1 つずつローカルで処理し、完了したらファイルから削除する必要があります。問題は、ファイルが継続的に更新されている可能性があることです。ファイルを台無しにしないように、作業を同期化するにはどうすればよいですか。また、同じ作業をより良い方法で行うことができるかどうかを提案してください。

4

2 に答える 2

1

ファイルよりも目的に適していると思われる名前付きパイプまたはソケットを調べることをお勧めします。それが本当にこれら 2 つのアプリケーションの間だけであり、両方のソース コードを制御できる場合。

たとえば、UNIX では、次のようなパイプを作成できます ( os.mkfifoを参照)。

import os
os.mkfifo("/some/unique/path")

そして、ファイルのようにアクセスします。

dest = open("/some/unique/path", "w")  # on the sending side
src = open("/some/unique/path", "r")   # on the reading side

データはプロセス間でキューに入れられます。これは実際には先入れ先出しですが、(ほとんど) ファイルのように動作します

このような名前付きパイプを使用できない場合は、socketモジュールから localhost 経由で IP ソケットを使用することをお勧めします。できれば DGRAM ソケットを使用することをお勧めします。あなたはすでにネットワーキングの方法を知っているようです。

于 2012-07-04T16:18:18.967 に答える
0

トランザクションが同時処理を可能にするデータベースを使用することをお勧めします。

于 2012-07-04T15:58:47.067 に答える