Как выполнить ping другое приложение, выполняемое локально из Ruby

Если никаких признаков не много:

mymap = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}
df.applymap(lambda s: mymap.get(s) if s in mymap else s)

Если это невозможно вручную:

temp_df2 = pd.DataFrame({'data': data.data.unique(), 'data_new':range(len(data.data.unique()))})# create a temporary dataframe 
data = data.merge(temp_df2, on='data', how='left')# Now merge it by assigning different values to different strings.
1
задан tim_xyz 13 July 2018 в 21:26
поделиться

1 ответ

Вместо этого вы хотите использовать Net::Ping::HTTP. Класс External используется для хостов ICMP-хоста (будет проверять, только ли хост, а не служба на этом хосте).

Проверьте, работает ли HTTP-сервер с использованием протокола HTTP:

check = Net::Ping::HTTP.new('http://localhost:5000')
check.ping?

Если вы хотите настроить таймаут вместо 2 секунд (по умолчанию 5):

check = Net::Ping::HTTP.new('http://localhost:5000', nil, 2)
check.ping?
2
ответ дан Casper 17 August 2018 в 12:08
поделиться
  • 1
    ping? возвращает true для check = Net::Ping::HTTP.new('https://www.google.ca/'), но false для check = Net::Ping::HTTP.new('http://0.0.0.0:5000'), когда мое другое приложение работает локально. Вы можете порекомендовать что-нибудь еще? – tim_xyz 16 July 2018 в 15:29
  • 2
    Не существует IP-адреса с адресом 0.0.0.0. Вы должны использовать localhost. 0.0.0.0 ТОЛЬКО используется при привязке услуги. Он информирует службу о привязке ко всем интерфейсам. 0.0.0.0 не может использоваться для исходящих соединений. Итак, замените 0.0.0.0 на localhost, и он будет работать так, как вы хотите. – Casper 16 July 2018 в 15:34
Другие вопросы по тегам:

Похожие вопросы: