Я ищу хороший способ опроса большого количества серверов для их статуса через TCP. В настоящее время я использую синхронный код и протокол Minecraft Query Protocol, но всякий раз, когда сервер находится в автономном режиме, остальная часть очереди задерживается.Как я могу эффективно опросить множество серверов?
Еще одна проблема, с которой я столкнулся с моим текущим кодом, заключается в том, что некоторые серверы, как правило, блокируют мой сервер, который я использую для опроса в своем брандмауэре, и поэтому их серверы отображаются в автономном режиме на моем списке серверов.
Я использую реки задачу на Ruby с бесконечным циклом, в котором каждый сервер Minecraft в моей базе данных MongoDB получает проверяется и обновляется каждые + - 10 минут (я пытаюсь установить этот интервал, позволяя выдержать паузу Петли (600/ s.count.to_i).ceil
секунды
есть ли способ, что я могу сделать эту задачу эффективно (и предотвратить сервера из черных списков моих IP в их брандмауэре), желательно с асинхронным кодом в Рубине
, а не многопоточность, обычно лучше использовать IO.select. –
Мне нравится метод IO.Select. Должен ли я просто выполнить строку ввода IO.Select, скажем, через 10 минут? – kiwiboom
Вы можете сделать это, убедитесь, что предыдущая проверка уже окончена. –