Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách đặt thời gian chờ cho truy vấn MySQL bằng C API

Được rồi, tôi đã tìm thấy giải pháp .. Cảm ơn Will PRR (đồng nghiệp của tôi).

Tôi không thể bắt đầu một chuỗi mới trên mỗi truy vấn, vì đây là một ứng dụng thời gian thực, ứng dụng này sẽ xử lý hơn 1000 thư mỗi giây .. (dù sao, cảm ơn R .. cho ý tưởng).

Ngoài ra, không thể ngắt kết nối thông qua thư viện, cũng như hủy / hủy truy vấn, vì sự cố nằm trong máy chủ DB ..

Và đây là một giải pháp brute-force, nhưng vẫn tốt hơn nhiều _EXIT( FAILURE ) :Đây là câu hỏi liên quan: "Cách buộc đóng cửa socket trên Linux? " - vì vậy, tôi vừa đóng ổ cắm bằng lệnh gọi hệ thống.

LƯU Ý quan trọng :(cảm ơn Will) - Hóa ra, trình bao bọc thư viện MySQL của chúng tôi có cờ "fail-safe", vì vậy trên ổ cắm đã đóng (hoặc lỗi nghiêm trọng khác), nó cố gắng "giải quyết" vấn đề, vì vậy nó mở lại ổ cắm , tự nó, trong trường hợp của tôi. Vì vậy, tôi vừa tắt tùy chọn này và hiện tại mọi thứ đều ổn - quá trình thực thi bị chấm dứt vì một ngoại lệ - đây là cách "nhẹ nhàng" nhất để thực hiện việc này.
Tất nhiên, điều này nên được thực hiện thông qua một chuỗi khác - a chẳng hạn như bộ đếm thời gian.

CHỈNH SỬA: Thời gian chờ thực sự hoạt động đối với các phiên bản sau 5.0.25. Tuy nhiên, ít nhất trên RHEL4 và RHEL5, thời gian chờ tăng gấp ba vì một số lý do! Ví dụ:nếu một số thời gian chờ được đặt thành 20 giây, thời gian chờ thực là ~ 60 giây ..
Ngoài ra, một điều quan trọng khác là những thời gian chờ này (như bất kỳ tùy chọn nào khác) PHẢI được đặt sau mysql_init trước đây mysql_connect hoặc mysql_real_connect .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để xác định điều gì hiệu quả hơn:DISTINCT hay NƠI TỒN TẠI?

  2. Vấn đề về Django và mysql trên Mavericks

  3. mysql cập nhật một cột với một int dựa trên thứ tự

  4. Hàm MySQL SIGN () - Tìm hiểu xem một số là dương hay âm trong MySQL

  5. Không thể kết nối với máy chủ cơ sở dữ liệu (bàn làm việc mysql)