2
정기적으로 수천 명의 고객을 대상으로 청구서를 실행하는 장고 시스템을 보유하고 있습니다. 여기 내 모델입니다 :와 송장의관련 개체로 장고`bulk_create '
청구가 실행class Invoice(models.Model):
balance = models.DecimalField(
max_digits=6,
decimal_places=2,
)
class Transaction(models.Model):
amount = models.DecimalField(
max_digits=6,
decimal_places=2,
)
invoice = models.ForeignKey(
Invoice,
on_delete=models.CASCADE,
related_name='invoices',
null=False
)
, 수천 작성된 각 레코드의 삽입을 트리거 여러 중첩 for
루프를 사용하여 만든 각 거래의 수십. 각각의 개별 송장에 대해 bulk_create()
트랜잭션을 실행할 수 있지만 여전히 수천 회를 호출하여 bulk_create()
을 호출합니다.
관계가 유지되고 데이터베이스가 가능한 가장 효율적인 방법으로 사용되도록 수천 개의 관련 모델을 대량 작성하는 방법은 무엇입니까?
주 :
- 내가 (SQLite는의 가능한 제외) 모든 데이터베이스에 일하는 것이 기본 장고 솔루션을 찾고 있어요.
- 내 시스템은 장기 실행 코드와 활성 요청을 분리하기 위해 셀러리 작업에서 청구서를 실행하지만 청구주기를 완료하는 데 소요되는 시간과 관련이 있습니다.
- 솔루션은 다른 요청이나 실행중인 작업이 해당 테이블에서 읽고 쓰고 있다고 가정해야합니다. 그들은 모두 ID를 가지고, 모든 송장에 대한
Transaction
객체를 생성하고 또한bulk_create
로 저장할 수 있도록