나는 csv 파일에 데이터 행을 작성합니다 내 장고 응용 프로그램에 몇 가지 기능을 추가 할 계획입니다 :Celery는 Django의 비동기 파일 쓰기 기능에 필요합니까? 특정 뷰가 호출 될 때
session_dict = collectUserDataFromRequest(request) #....collect parameters from request
if os.path.isfile(filename):
with open(filename, 'a') as csv_file:
a = csv.DictWriter(csv_file,session_dict.keys())
a.writerow(session_dict)
csv_file.close()
else:
with open(filename, 'w') as csv_file:
w = csv.DictWriter(csv_file,session_dict.keys())
w.writeheader()
w.writerow(session_dict)
csv_file.close()
# then proceed to render the html
나는 잠재적 인 경쟁 상태 때 다루고 직면하고 문제를 여러 사용자가 동시에 내 앱에 액세스하고 있습니다. 데이터를 임의의 순서로 CSV 파일에 추가 할 수 있지만 일부 사용자는 CSV 파일에서 잠금이 해제 될 때까지 대기하는 동안 뷰가로드 될 때까지 기다리지 않는 것이 좋습니다. 따라서 백그라운드에서 실행할 수있는 파일에 쓸 문자열 데이터의 비동기 대기열이 좋은 해결 방법이라고 생각합니다.
Celery는 장고 앱에 비동기 프로세스를 추가하는 좋은 프레임 워크라고 들었습니다. 그러나 여러 자습서를 살펴보면 Redis와 같은 추가 프레임 워크가 일반적으로 필요하다는 것을 알게되었습니다. 나는 이것이 내가 성취하고자하는 것에 과잉이라고 걱정한다. Django 프로덕션 환경에서 멀티 스레드를 사용하는 데있어 다른 단점이 있는지 또는 here과 같이 표준 다중 처리 접근법을 사용하여 해결할 수 있습니까?