Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initialize env at startup to get everything right #3

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

codez
Copy link
Contributor

@codez codez commented Jul 16, 2020

Ros-Apartment frikelt an der connection Methode von Rails herum. Wenn wir darauf zugreifen, bevor Rails initialisiert ist, gibts bei weiteren Zugriffen (wait_for_migrations) eine Exception. Mit dem direkten laden des environments könnte dies behoben werden.

Siehe rails-on-services/apartment#92

@severinraez
Copy link
Contributor

Nice to have you back :)
Das Rails-Environment wird momentan nicht geladen, um die Boot-Zeit von bleib tief zu halten - so startet die App schneller, falls DB-und migrationsseitig nichts zu tun ist (was meistens der Fall ist). Siehe auch den Kommentar im Readme zu BLEIB_DATABASE_YML_PATH.
Das etwas Kontext, falls sich eine Alternative ohne Abhängigkeit aufs Environment anbieten würde. Ansonsten: "Funktionierend" übertrumpft auf jeden Fall "schnell".
Das meine zwei Cents, ich verabschiede mich wieder in die Ferien 😄

@codez
Copy link
Contributor Author

codez commented Jul 16, 2020

Die Apartment Jungs haben es bis sich bereits angepasst, es sollte also hier bald auch so wieder funktionieren. Ich habe aber das Gefühl, das wir mit dem Zugriff auf die ActiveRecord connection ohne vorher das Environment zu laden in einer Grauzone sind, wo nicht wirklich garantiert ist, dass alles so funktioniert wie gedacht. Aber falls keine weiteren solche Problemfälle auftreten, können wir das mal so lassen und einfach im Hinterkopf behalten.

Aber wenn Geschwindigkeit wirklich zählt: Rake lädt ja auch so schon das ganze Bundle, was nicht ganz wenig ist. Warum nicht ein simples

psql -U $RAILS_DB_USERNAME -h $RAILS_DB_HOST $RAILS_DB_NAME -c "select 1;"

Ja, bleib unterstützt nicht nur Postgres, aber etwas ähnliches wäre ja auch bei Mysql usw möglich. Dann sind wir weit unter dem Sekundenbereich und auch massiv schneller. Wenn man sich für den Ruby Komfort entscheidet, fällt das Laden des Environments im Vergleich auch gar nicht mehr so ins Gewicht (Output Integration Socialweb):

sh-4.2$ time psql -U $RAILS_DB_USERNAME -h $RAILS_DB_HOST $RAILS_DB_NAME -c "select 1;"
real	0m0.055s
user	0m0.009s
sys	0m0.017s

sh-4.2$ time bundle exec rake bleib:wait_for_database     # kein environment
real	0m3.225s
user	0m2.128s
sys	0m0.892s

sh-4.2$ time bundle exec rake bleib:wait_for_migrations   # mit environment
real	0m4.686s
user	0m3.055s
sys	0m1.212s

Aber geniess jetzt mal erst deine Ferien, so fest pressiert's auch nicht ;)

@codez
Copy link
Contributor Author

codez commented Sep 11, 2020

@severinraez wie weiter?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants