Tôi có một ứng dụng Rails đơn luồng chạy trên chế độ đơn luồng mỏng trên Heroku Cedar.Ứng dụng Rails đơn luồng của tôi xử lý các yêu cầu đồng thời như thế nào?
Trong khi tôi thực hiện một yêu cầu POST lớn (tải lên tệp) mất hơn một phút, tôi có thể thực hiện các yêu cầu GET khác cùng một lúc.
Hỗ trợ Heroku đảm bảo với tôi rằng lớp định tuyến của họ không lưu trữ yêu cầu và sau đó gửi tất cả cùng một lúc (đó là hành vi của nhiều proxy, chẳng hạn như nginx). Họ nhấn mạnh rằng ứng dụng của tôi đang xử lý các yêu cầu đồng thời.
Điều gì đang xảy ra ở đây?
thú vị - nếu đúng, tôi ngạc nhiên rằng hành vi này của mỏng không được nhắc đến nhiều hơn. nó giống như nó có một proxy nhỏ nhỏ ở phía trước nó, cải thiện sự tương tranh. bạn có biết phần nào của đoạn mã nhỏ mà tôi có thể xem để hiểu hành vi này không? –
Tôi đã không nhìn vào mã của mỏng, nhưng, hợp lý, nó phải là lớp mạng. Không biết nếu nó dễ dàng để xác định điều này trong các nguồn. –
Có vẻ như tác giả của những người đồng hành mỏng: https://groups.google.com/forum/#!msg/thin-ruby/uKLD-qob6Kc/gH8b4MPATI8J –