djangoプロジェクトでは、dbのオブジェクト用のpdfファイルをいくつか生成する必要があります。各ファイルは生成に数秒かかるので、私はセロリを使ってタスクを非同期で実行します。python zipファイルはスレッドセーフですか?
問題は、各ファイルをzipアーカイブに追加する必要があることです。私はpython zipfileモジュールを使用する予定でしたが、別のスレッドで異なるタスクを実行することができます。同時に2つのタスクがファイルをアーカイブに追加しようとするとどうなるでしょうか?
次のコードスレッドは安全ですか?私はPythonの公式文書で貴重な情報を見つけることができません。
try:
zippath = os.path.join(pdf_directory, 'archive.zip')
zipfile = ZipFile(zippath, 'a')
zipfile.write(pdf_fullname)
finally:
zipfile.close()
注:これはpythonの下2.6
どのセロリー並行性メソッドを使用しますか?コードがデフォルトのマルチプロセッシング同時実行方式を使用してセロリのタスクで実行される場合、それらは別々のプロセスで実行されるため、スレッドの安全性について心配する必要はありません。 – mher
問題はスレッドセーフではなく、同時にファイルへの書き込みアクセスです。 –