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

LazyInit der MySQL-Verbindung #18

Open
FrankR85 opened this issue Jan 22, 2020 · 4 comments
Open

LazyInit der MySQL-Verbindung #18

FrankR85 opened this issue Jan 22, 2020 · 4 comments

Comments

@FrankR85
Copy link
Contributor

Damit der Server nicht kaputt geht, falls die MySQL-DB noch nicht gestartet ist, wäre es sinnvoll, die Verbindung erst dann aufzubauen, wenn sie gebraucht wird.

Und falls sie auch dann noch nicht aufgebaut werden kann, sollte der Server darauf fehlertolerant reagieren.

Ungefähr so: Link zu privatem Repo

Hintergrund: Ich überlege gerade, welche Änderungen in dem privaten Repo auch für das öffentliche relevant sein könnten und bin dabei hierüber gestolpert.

@FrankR85
Copy link
Contributor Author

Was noch besser wäre: Wenn der MySQLListener völlig entkoppelt wäre und über die externen MQTT-Events, die mittlerweile ja verschickt werden, angetriggert werden würde.

Dann gäbe es zur Startzeit des Servers keinerlei Abhängigkeit zur Datenbank.

@pfichtner
Copy link
Collaborator

...aber dass der Broker bereits gestartet ist! ;-)
Also gleiches Szenario in grün. Die präferierte Lösung habe ich in meinem Fork dokumentiert, übertrage ich gleich

@pfichtner
Copy link
Collaborator

Generell sollten alle Adapter fehlertolerant sein: Mindestens was den Wegfall einer Verbindung angeht (mit wiederholtem Versuch zum Wiederaufbau) angeht.
Darüber hinaus ist meist auch das Ignorieren einer Nichtverfügbarkeit während des Startups sinnvoll (oder eben gar kein Versuch des Aufbaus beim Startup und lazy Initialisierung).

@FrankR85
Copy link
Contributor Author

Genau, dann wäre es nämlich auch kein Problem, wenn der Broker noch nicht verfügbar wäre.

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

No branches or pull requests

2 participants