2012-06-04 1 views
0

J'ai écrit une tâche de rake qui remplit ma base de données avec des données provenant d'une API tierce.L'exécution de la tâche rake avec open-uri sur Heroku entraîne une erreur Connection Refused.

namespace :populate do 
desc "Populate database with data from first page of TicketWeb API" 
task :one_page => :environment do 
    require 'open-uri' 
    json_data = open(SOME_URL).read 
    parsed_json = JSON.parse(json_data) 
    parsed_json["events"].each do |e| 
     existing_event = Event.find_by_id(e["eventid"]) 
     if existing_event == nil 
      new_event = Event.new(e) 
      new_event.save 
     else 
      existing_event.update_attributes(e) 
     end 
    end 
end 

fin

Cela fonctionne parfaitement lors de l'exécution sur ma machine locale. Cependant, l'exécuter sur une instance Heroku entraîne cette erreur:

rake abandonné! Connexion refusée - connect (2)

Je dois admettre que je ne suis pas très expérimenté avec Rails, donc je ne suis pas sûr si je récupère correctement les données de l'API tierce ou si Heroku n'aime pas ce que je fais. Je suis juste perplexe, pour le moment.

Répondre

0

Il s'avère que l'API tierce bloquait toutes les demandes émanant de Heroku.

Je suis arrivé dans ce en appuyant sur ma base de données locale à la base de données Heroku avec cette commande:

heroku db:push