Có cách nào để chạy một số mã sau khi giao dịch cam kết trong Django?chạy mã sau khi giao dịch cam kết trong Django
Tôi cần gửi một số thư tới máy chủ thỏmq để xử lý ngoại tuyến, nhưng thư được gửi đến người tiêu dùng trước khi giao dịch Django được cam kết.
Tin nhắn của tôi được gửi trong tín hiệu post_save của mô hình. Những gì tôi đang tìm kiếm là một cơ chế tương tự, sử dụng tín hiệu hoặc cái gì khác, mà sẽ thực thi mã sau khi cam kết (và không làm gì nếu giao dịch thất bại).
Tôi chưa tìm thấy bất kỳ cách chung nào để thực hiện việc đó ở Django. Bạn có bất cứ ý tưởng?
Tôi đã có một vấn đề simmilar. Trên post_save, Publisher (quy trình 1) lưu trạng thái nhiệm vụ và xuất bản tin nhắn. Người tiêu dùng (quy trình 2) nhận được thông báo và cập nhật trạng thái tác vụ, hiện chưa có trong db. Điều gì đã làm cho người tiêu dùng ngủ trong một hoặc hai giây sau khi nhận được tin nhắn. Cảm thấy bẩn anyway. – ohnoes
Sau khi đấu tranh trong 4 giờ, tôi đã tìm ra từ câu hỏi này rằng chúng tôi không thể có mã sau transaction.commit() và bây giờ mã của tôi đang chạy tốt. cảm ơn. – zubinmehta
Vé liên quan: https: //code.djangoproject.com/ticket/14051 – guettli