Tôi đã có một vấn đề tương tự với một công nghệ rất khác nhau: Xoắn xoắn (IO dựa trên lò phản ứng) và sqlAlchemy (??). Trong khi tìm kiếm giải pháp, tôi đã tìm thấy về một dự án sAsync chỉ đơn giản là tạo ra một luồng riêng biệt cho sqlAlchemy và sau đó trả lời các yêu cầu.
Do ASIO dựa trên các tính năng OS cấp thấp (như aio_read() hoặc ReadFileEx() vv) và lò phản ứng ở mức hệ điều hành (hoặc proactor, trong trường hợp của Windows) Tôi không nghĩ bạn có cơ hội khác hơn là mô phỏng 'không đồng bộ' bằng các phương tiện tương tự.
Chạy một kết nối đồng bộ trong đề không phải là một lựa chọn
Hãy suy nghĩ về nó: libmysqlclient/mysqlclient.dll
bạn đang sử dụng làm cho các cuộc gọi ổ cắm đồng bộ. Trình lên lịch hệ điều hành sẽ chuyển sang một luồng khác cho đến khi I/O hoàn tất, vậy sự khác biệt là gì? (ngoài thực tế là bạn không nên tạo chủ đề 2k cho điều này ..)
Chỉnh sửa: mysql_real_connect() hỗ trợ tham số socket UNIX. Bạn có thể được cho là đọc chính mình từ cổng máy chủ mysql và ghi vào ổ cắm UNIX đó chỉ bằng ASIO. Giống như proxyfication.
Kết nối chặn là một vấn đề nghiêm trọng trong việc triển khai này, nhưng dù sao dường như làm những gì tôi yêu cầu ban đầu. Dự án mưa phùn (https://launchpad.net/drizzle) đang hoạt động trên máy khách async sẽ tương thích ngược với Mysql (được đề cập ở đây: http://www.oddments.org/?p=20) –