django-parallelized_querysets là một ứng dụng Django để xử lý Django QuerySets lớn do lây lan của họ thực hiện trên nhiều lõi và giữ thấp sử dụng bộ nhớ.
Cài đặt
pips cài đặt django-parallelized_querysets
Cách sử dụng
parallelized_queryset (queryset, quy trình = None, chức năng = Không)
Xử lý queryset đưa ra và trả về kết quả là một danh sách.
proceses
Số quy trình để tạo ra. Mặc định là số trả về bởi multiprocessing.cpu_count ().
hàm số
Áp dụng một chức năng từng kết quả. Không áp dụng bất kỳ chức năng theo mặc định. Đối số đầu tiên là quá trình được gọi nó, và thứ hai là hàng.
Bạn cũng có thể vượt qua hai móc (chức năng sẽ được thực hiện theo quy trình tại các thời điểm quy định):
init_hook
Cung cấp cho nó một chức năng lấy Process như là đối số và nó sẽ được thực hiện tại ngay khi nó được tạo ra.
end_hook
Cung cấp cho nó một chức năng lấy Process như là đối số và nó sẽ được thực hiện ngay trước khi thoát Process. Nếu nó trả về một giá trị không-Không, nó sẽ được nối thêm vào các kết quả hàng đợi.
& Nbsp; Note
& Nbsp; Mỗi lần chức năng của bạn trả về None, giá trị sẽ không có trong danh sách kết quả.
& Nbsp; Note
& Nbsp; Trình tự queryset sẽ không được tôn trọng!
Ví dụ
Trả lại tất cả các đối tượng của bài:
>>> Từ parallelized_querysets parallelized_queryset nhập khẩu
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (vừa đủ)
Thêm tất cả các đối tượng Điều quan đến chỉ số Redis (giả sử có một phương pháp Điều append_to_redis):
>>> Từ parallelized_querysets parallelized_queryset nhập khẩu
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (vừa đủ, chức năng = lambda p, x: x.append_to_redis ())
Làm tương tự nhưng trên 6 quy trình:
>>> Từ parallelized_querysets parallelized_queryset nhập khẩu
>>> Qs = Article.objects.all ()
>>> Parallelized_queryset (qs, quy trình = 6,
& Nbsp; chức năng = lambda p, x: x.append_to_redis ())
parallelized_multiple_querysets (querysets, quy trình = None, chức năng = Không)
. Tương tự như parallelized_queryset nhưng querysets là một danh sách các QuerySets
Yêu cầu :
- Python
- Django
Bình luận không