Làm cách nào tôi có thể xem số lần khôi phục trong STM của mình trong Clojure?Làm cách nào tôi có thể thấy số lần khôi phục trong STM của mình trong Clojure?
13
A
Trả lời
17
Bạn không thể ... trừ khi bạn sẵn sàng để lừa:
(defmacro spy-dosync [& body]
`(let [retries# (atom -1)
result# (dosync
(swap! retries# inc)
[email protected])]
(println "retries count:" @retries#)
result#))
và sau đó thay thế dosync của bạn bằng một spy-dosync.
5
Nếu bạn cảm thấy khó chịu, bạn có thể hack nguồn Clojure và xây dựng lại (đó là easy để xây dựng lại nguồn Clojure). Việc thử lại giao dịch xảy ra trong src/jvm/clojure/lang/LockingTransaction.java trong phương thức run(). Có một vòng lặp lớn cho đến khi thực hiện hoặc RETRY_LIMIT. Giá trị của i khi thoát vòng lặp phải là số đếm lại.
2
Có STM-stress test được viết bởi Chris Houser có thể hữu ích
Các vấn đề liên quan
- 1. Làm cách nào để có thể khôi phục event.preventDefault?
- 2. Tôi có nên khôi phục các cuộc gọi RPC của mình qua HTTP không?
- 3. Làm cách nào tôi có thể tìm thấy chỉ mục của thành viên nhỏ nhất của vectơ này trong Clojure?
- 4. Bạn có thể khôi phục/khôi phục chi nhánh đã xóa trên GitHub trong bao lâu?
- 5. Tôi làm cách nào để duy trì và khôi phục tệp bị hỏng của mình thành tệp?
- 6. có cách nào để khôi phục hbase
- 7. Làm thế nào tôi có thể thấy những gì có trong heap của tôi trong Java?
- 8. Khuôn khổ thực thể - cách phát hiện ngoại lệ có thể khôi phục và không thể khôi phục
- 9. Tôi làm cách nào để khôi phục tính năng chia sẻ trong GADT?
- 10. Làm cách nào tôi có thể tự động khôi phục tất cả gián điệp sinon.js sau mỗi lần kiểm tra trong Jasmine?
- 11. Việc khôi phục có thể bị phản đối không?
- 12. Làm cách nào để khôi phục tệp đã xóa trong Mercurial (nếu có)?
- 13. Báo hiệu một lần khôi phục từ một JMS MessageListener
- 14. Làm cách nào để khôi phục kho lưu trữ Git của tôi cho lỗi "thiếu cây"?
- 15. Tần suất tôi phải cập nhật đồng phục của mình?
- 16. Làm cách nào để khôi phục/etc/nginx?
- 17. Cách khôi phục từ ngoại lệ bế tắc trong SqlDataReader.Đọc()
- 18. Làm cách nào để khôi phục phiên PHP?
- 19. Làm thế nào tôi có thể tìm thấy các tắc nghẽn hiệu suất trong ứng dụng Ruby của mình?
- 20. Cách khôi phục Giao dịch mua hàng trong ứng dụng?
- 21. Làm cách nào để tôi chỉ có thể khôi phục các tệp đã sửa đổi trên thanh toán git?
- 22. Tôi không thể thấy chi nhánh từ xa của mình
- 23. Android - khôi phục hoạt động được xem lần cuối
- 24. tràn trong khôi phục trong android 4.3
- 25. Làm thế nào tôi có thể tìm thấy số lượng khóa trong một băm trong Perl?
- 26. Làm cách nào để khôi phục trường hợp mặc định thành biến trong VBA (Excel 2010)?
- 27. Làm cách nào để phát hiện kết nối JMS bị hỏng/khôi phục trong Apache Camel?
- 28. Hành vi nút "Khôi phục giao dịch" khi không có gì để khôi phục
- 29. Có công cụ nào để sao lưu/khôi phục các thực thể của Google Datastore không?
- 30. Tôi có thể tạo chứng chỉ số của riêng mình trong C# hoặc Windows không?