cuốn sách gpt4 ai đã làm

Đang chờ chủ đề ghi các thay đổi trong lệnh tắt máy

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 05:18:49 25 4
mua khóa gpt4 Nike

Tôi có một lệnh tắt máy thực thi khi quá trình kết thúc. Tuy nhiên, những thay đổi do chương trình thực hiện đối với cơ sở dữ liệu h2 không phải là vĩnh viễn. Chỉ bằng cách để luồng tắt chờ một thời gian sau khi xác nhận, tôi mới có thể thấy các thay đổi trong cơ sở dữ liệu khi bắt đầu lại.

Runtime.getRuntime().addShutdownHook(Chủ đề mới() {
@Ghi đè
công khai void run() {
// H2 db thêm hàng, xác nhận và đóng
Thread.sleep(1000); // trong thử/bắt
System.out.println("Tắt máy hoàn tất");
}
}

chỉ một sleep, tôi sẽ thấy những thay đổi vào lần tiếp theo khi tôi kết nối với cơ sở dữ liệu.

Có ai biết cách đợi cơ sở dữ liệu H2 hoàn tất thao tác trước khi quá trình kết thúc không? Tôi muốn tránh sử dụng thời gian ngẫu nhiên Thread.sleep()...

câu trả lời hay nhất

Bạn có thể sử dụng TẮTlệnh để tất cả ghi vào đĩa được xóa đúng cách trước khi đóng ứng dụng.

Một giải pháp khác là gọi ĐỒNG BỘ ĐIỂM KIỂM TRAtrong Hook đóng của bạn (nhưng trước khi đóng tất cả các kết nối). Việc này không "đóng" cơ sở dữ liệu, nó sẽ được thực hiện tự động khi kết nối cuối cùng bị đóng.

Về java - đang chờ luồng ghi các thay đổi trong lệnh tắt máy, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/8518163/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress