#状況
現在、javascriptとpythonで簡単なアンケートサイトを立ち上げ中です。
ほぼクライアントは完成し、あとはサーバー側でユーザのデータを保存すれば完了です。
簡易的にファイル保存にしてしまおうと思ったのですが、ファイル保存の場合、大量のサブミットが同時に発生した場合の整合性がどうなるのか少し心配になってきました。
500人ほどから回答を頂く予定なので、数人が同時にサブミットすることはあり得るかと思います。
保守やバックアップ、整合性の観点でデータベースの方が好ましいとは考えておりますが、ログファイルなどに非同期で出力保存するケースもあるのでできるはずと考えております。
#困っていること
WEBサーバーの構築は初めてなので、起こりうる問題が想定できず。
このやり方で問題なく整合性のあるファイル保存ができるのか?
他にもっと良い方法があるのか?ご教授いただけますと幸いです。
下は、ユーザから$.postで投げられたjsonデータをファイルに追記するcgiです。
python3
1#!/usr/bin/env python3.6 2# -*- coding: utf-8 -*- 3import json 4import cgi 5import cgitb 6import sys 7import random, string 8cgitb.enable() 9 10data = sys.stdin.read() 11params = json.loads(data) 12 13with open("output.txt", mode="a") as f: 14 json.dump(params, f) 15 16exit()
#試したこと
bash上で500回同じファイルに追記モードでjson.dump行うテストを行いました。
ファイル内での順序は入れ替わりましたが欠けたデータはななかったので上のやり方で問題なく行くはずだと考えてます。
bash
1for i in {1..500} ; do 2 ./test.py ${i} & 3done
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/17 13:49
2019/04/18 03:00
2019/04/18 08:22
退会済みユーザー
2019/04/18 09:11