Ich brauche Hilfe einen Arbeiter mit sidekiq für diese Situation zu entwickeln:Wie erstelle ich einen Hintergrundjob für die Get-Anfrage mit Sidekiq und httparty?
Ich habe einen Helfer, der wie folgt aussieht:
module UploadsHelper
def save_image
response = HTTParty.get(ENV['IMAGE_URI'])
image_data = JSON.parse(response.body)
images = image_data["rows"].map do |line|
u = Image.new
u.description = line[5]
u.image_url = line[6]
u.save
u
end
images.select(&:persisted?)
end
end
In meinem app/views/uploads/index.html.erb
Ich mache das nur
<% save_image %>
Jetzt, Wenn ein Benutzer die Uploads/Index-Seite besucht, werden die Bilder in der Datenbank gespeichert.
Das Problem ist, dass die Get-Anfrage an die API wirklich langsam ist. Ich möchte Anforderungstimeouts verhindern, indem ich dies in einen Hintergrundjob mit sidekiq verschiebe.
Das ist mein workers/api_worker.rb
class ApiWorker
include Sidekiq::Worker
def perform
end
end
Ich weiß es einfach nicht der beste Weg, um von hier aus, um fortzufahren.
Genau, außer die Methode ist 'perform_async'. –
@MikePerham Vielen Dank, dass Sie darauf hingewiesen haben. Ich habe es gerade mit einem einfachen ActiveJob Arbeiter zusammengebracht. :) – 31piy
Ich habe eine Follow-up-Frage zu einem Problem porduction mit dem Arbeiter hier, falls Sie interessiert sind danke: http://stackoverflow.com/questions/42756028/sidekiq-error-could-not-connect-to-server- Datei oder Verzeichnis existiert nicht –