Hiện đang làm việc với Oracle, nhưng cũng sẽ cần một giải pháp cho MS SQL.Làm cách nào để hủy một hoạt động Cơ sở dữ liệu dài hạn?
Tôi có GUI cho phép người dùng tạo SQL sẽ được thực thi trên cơ sở dữ liệu. Quá trình này có thể mất nhiều thời gian, tùy thuộc vào tìm kiếm mà chúng tạo ra. Tôi muốn GUI/App đáp ứng trong quá trình tìm kiếm này và tôi muốn người dùng có thể hủy tìm kiếm.
Tôi đang sử dụng Đề tài công nhân nền.
Vấn đề của tôi là khi người dùng hủy tìm kiếm, tôi không thể ngắt cuộc gọi đến cơ sở dữ liệu. Nó đợi cho đến khi nó được hoàn thành và sau đó, nó có thể thăm dò tài sản 'CancelationPending'. Tài nguyên này không chỉ lãng phí trên cơ sở dữ liệu, mà còn tạo ra các vấn đề cho mã của tôi.
Nếu người dùng truy cập 'Tìm kiếm' trên một truy vấn rất dài, sau đó nhấp vào 'Hủy' và sau đó nhấp vào 'Tìm kiếm' lần nữa - tìm kiếm đầu tiên vẫn đang lưu lại trên cơ sở dữ liệu. Nhân viên nền vẫn bận khi họ nhấn tìm kiếm lần nữa. Giải pháp duy nhất tôi gặp phải trong vấn đề này là tạo một nhân viên nền tảng mới.
Dường như một cách thực sự xấu xí để làm việc. Cơ sở dữ liệu tiếp tục làm việc Tôi đang tạo các phiên bản mới của các nhân viên nền .... khi tôi thực sự muốn DỪNG cuộc gọi cơ sở dữ liệu và sử dụng lại cùng một nhân viên.
Tôi có thể làm như thế nào?
Cảm ơn tất cả các bài đăng; Tôi thực sự không chắc câu trả lời nào là tốt nhất; tất cả các cuộc bỏ phiếu dường như đã đến từ tôi. Lời xin lỗi của tôi nếu tôi đã chọn sai. –
bất kỳ mã mẫu tốt nào ?? – Kiquenet