Ошибка тайм-аута при попытке запустить приложение Rails - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь заполнить следующую базу данных PostgreSQL: https://github.com/toddwschneider/nba-shots-db. Я выполняю все необходимые шаги, включая установку Ruby, PostgreSQL, Rails и др. c. Но когда я пытаюсь запустить bundle exec rake db:setup, я получаю ошибку тайм-аута:

44738@christine-cluster-m:~/nba-shots-db$ bundle exec rake db:setup
Created database 'nba-shots-db_development'
Created database 'nba-shots-db_test'
-- enable_extension("plpgsql")
   -> 0.0119s
-- create_table("closest_defender_aggregates", {:force=>:cascade})
   -> 0.0182s
-- create_table("delayed_jobs", {:force=>:cascade})
   -> 0.0129s
-- create_table("players", {:force=>:cascade})
   -> 0.0125s
-- create_table("shots", {:force=>:cascade})
   -> 0.0124s
-- enable_extension("plpgsql")
   -> 0.0133s
-- create_table("closest_defender_aggregates", {:force=>:cascade})
   -> 0.0170s
-- create_table("delayed_jobs", {:force=>:cascade})
   -> 0.0134s
-- create_table("players", {:force=>:cascade})
   -> 0.0124s
-- create_table("shots", {:force=>:cascade})
   -> 0.0131s
rake aborted!
RestClient::Exceptions::ReadTimeout: Timed out reading data from server
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:733:in `rescue in transmit'
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:642:in `transmit'
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:145:in `execute'
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:52:in `execute'

...

Caused by:
Net::ReadTimeout: Net::ReadTimeout
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:448:in `net_http_do_request'
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:721:in `block in transmit'
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:715:in `transmit'
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:145:in `execute'
/home/44738/.rvm/gems/ruby-2.5.3/gems/rest-client-2.0.2/lib/restclient/request.rb:52:in `execute'
/home/44738/nba-shots-db/app/lib/nba_stats_client.rb:156:in `get'

...

Tasks: TOP => db:setup => db:seed
(See full trace by running task with --trace)

Так что похоже на создание обеих баз данных, и начинается создание таблиц, что кажется хорошим знаком. Но тогда я получаю ошибку тайм-аута. Может ли это быть как-то связано с тем, что я делаю это в кластере Had oop? Я чрезвычайно новичок во всем этом, поэтому заранее извиняюсь, если эта ошибка очевидна. Также дайте мне знать, было бы полезно добавить дополнительную информацию. Заранее спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

гем пытается загрузить данные из https://stats.nba.com/stats/, и этот сервер не отвечает. Вы ничего не можете сделать, чтобы решить эту проблему.

Возможно, сообщите об этом сопровождающему самоцвета, открыв вопрос на своей странице GitHub . Возможно, сопровождающие также имеют доступ к серверу и могут посмотреть.

0 голосов
/ 14 апреля 2020

RestClient истекает. RestClient - это инструмент для создания веб-запросов. Согласно вашей трассировке стека, сайт вызова - это строка 156 файла app / lib / nba_stats_client.rb. Посмотрите, что вы просите RestClient сделать там. Это просто время ожидания доступа к указанному URL. Попробуйте получить доступ к этому URL-адресу самостоятельно (вставьте его в браузер или используйте curl), и вы, вероятно, увидите тот же тайм-аут.

На компьютере, на котором запущен сервер rails, вы можете использовать такой инструмент, как curl, чтобы сформировать тот же самый запрос и скорее всего видят тот же таймаут:

curl <url>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...