サイトに管理パネルがあります。1 回限りの初期データ ロードを実行したいと考えており、Web ページにボタンを作成しました。このボタンは、最終的に次の関数に到達する http 要求を生成します。
def load_model(dbf_file, model, create_fn):
db = dbf_reader.read_database(dbf_file)
data = []
for record in db:
data.append(create_fn(record))
if len(data) == 300:
model.objects.bulk_create(data)
data = []
この関数は .DBF ファイルを読み込み、一度に 1 つずつレコードを読み取ります。それらを配列にバッチ処理し、bulk_create を使用して一度に多くのレコードを挿入します。私は約 5mil のレコードを持っていますが、Django は一貫して 4mil で死んでいます。これは、メモリが 1 ギガしかない比較的小さなサーバーです。Django にガベージ コレクションやリソースの解放をさせるためにできることはありますか?