2016-06-17 5 views
0

Ich versuche, worker.bgw_restart_time = 1. Dies stellt sicher, dass der Hintergrundarbeiter im Falle eines Systemabsturzes neu gestartet wird.Wie Hintergrund PostgreSQL neu starten, wenn wir Postgres neustarten?

Aber ich möchte meinen Hintergrundarbeiter neu starten, wenn wir Postgres selbst neu starten. Gibt es einen Weg, es zu tun?

+0

Warum verwenden Sie keinen Timer, um die Verbindung wiederherzustellen? –

+0

Ein Timer, wo das Skript zum Neustart von Postgres vorhanden ist? – akashag26

Antwort

2

worker.bgw_restart_time = 1 bedeutet, dass der Hintergrund-Worker-Prozess vom Postmaster automatisch neu gestartet wird, wenn der Hintergrund-Arbeitsprozess selbst abstürzt. Auf diese Weise können Sie einen kontinuierlich laufenden Hintergrundprozess beibehalten, selbst wenn dieser gelegentlich ausfällt.

Alle Hintergrund-Worker-Prozesse werden automatisch gestoppt, wenn der PostgreSQL-Server vollständig gestoppt wird.

Was bei einem Neustart geschieht, hängt davon ab, wie der Hintergrund-Worker initialisiert wird. Wenn es zum Beispiel über shared_preload_libraries geladen wird, wird es automatisch gestartet. In anderen Fällen könnte es viel später begonnen werden, wenn es aufgerufen wird.

Es gibt keine Möglichkeit, sich zu erinnern, welche Hintergrundarbeiter vor dem Herunterfahren ausgeführt wurden, und sie nach einem Neustart wieder zu starten. Möglicherweise müssen Sie selbst etwas für das, was Sie entwickeln, selbst implementieren.

+0

Danke. Das ist eine großartige Lösung, um es in shared_preload_libraries zu laden. – akashag26

Verwandte Themen