Ich habe eine Rails-Anwendung, die IronWorker verwendet, und ich muss eine Verbindung mit meiner Datenbank vom Worker herstellen. Wie mache ich das?Wie stelle ich mit ActiveRecord eine Verbindung zu einer Datenbank in IronWorker her?
Antwort
Der Worker muss explizit eine Verbindung zur Datenbank herstellen, da er nicht in Ihrer Anwendung ausgeführt wird. Daher müssen Sie die Verbindungsinformationen an Ihren Worker übergeben. Sie können dies wie so in der Arbeiter Nutzlast tun:
client = IronWorkerNG::Client.new
task = client.tasks.create('MyWorker', 'database' => Rails.configuration.database_configuration[Rails.env])
Dann in Ihrem Arbeiter:
ActiveRecord::Base.establish_connection(params['database'])
ich blog post auf diese oben katapultierte. Hoffentlich hilft es!
In einer Nussschale, aber das Speichern Ihrer Datenbankkonfigurationen in Umgebungsvariablen macht es einfach.
Definitiv! Welcher Teil ergab keinen Sinn? Das wird mir helfen, effektiver zu antworten. Letztendlich möchten Sie Ihre Datenbankanmeldeinformationen jedoch an Iron Worker übergeben, damit Iron Worker mithilfe der von Ihnen übergebenen Anmeldeinformationen eine Verbindung mit Ihrer Datenbank herstellen kann. – Chiedo
Danke für Ihre Eingabe! ... aber ich bin mir sicher, dass Leute, die iron.io und die Frage verstehen, den Beitrag nützlich finden werden. Wenn jemand, der rails und iron.io arbeitet, es nicht nützlich findet und mich wissen lässt, ist das eine andere Geschichte – Chiedo
Würdest du zufällig wissen, wie ich einen solchen Worker (einer, der sich mit einer Datenbank verbindet) in einer Entwicklungsumgebung testen kann? – Gautam
Sie können den Befehl "iron_worker run my_worker" über die Befehlszeile ausprobieren, um es zu testen, aber ich empfehle generell, den eigentlichen Dienst zu verwenden, da Sie dann sicher sind, dass es sich um dieselbe Umgebung handelt. http://12factor.net/dev-prod-parity –