• Страница 1 из 1
  • 1
Модератор форума: No_MaTTeR, Dimitro, LightInDarkness  
ROR TCPSocket
wow-info
Центурион
Подскажите пожалуйста, как можно реализовать кэширование или моментальный сброс коннекта при перезагрузке страницы на рельсах.
Для чего? - При каждом обновлении страницы, сервер начинает создавать подключение. Страница не отвечает (не загружается) до тех пор, пока не получит результат всех соединений (к-во раз нажатия F5 ). Нагрузка сервера + долгая прогрузка страницы
Код:
Код
addr = Socket.getaddrinfo(host, nil)
   sockaddr = Socket.pack_sockaddr_in(port, addr[0][4])

   Socket.new(Socket.const_get(addr[0][0]), Socket::SOCK_STREAM, 0).tap do |socket|
     socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)

     begin
       socket.connect_nonblock(sockaddr)

     rescue IO::WaitWritable

       if IO.select(nil, [socket], nil, timeout)
         begin

           socket.connect_nonblock(sockaddr)
         rescue Errno::EISCONN

         rescue

           socket.close
           raise
         end
       else  

         socket.close
         raise "Connection timeout"
       end
     end
   end
Сообщение # 1 написано 06.04.2015 в 20:54
  • Страница 1 из 1
  • 1
Поиск: