Ich habe eine globale Variable in einem meiner Rails-Initialisierer config/initializers/globals.rb. Diese Variable ist einfach eine Liste, die auf die Mitglieder eines Redis-Sets gesetzt ist.Wie aktualisiert man eine globale Rails-Variable in einem Job?
$listOfBannedDomains = $redis.smembers("banned_domains")
Der Redis Satz wird einmal in eine Weile aktualisiert. Wie kann ich $ listOfBannedDomains mit den Redis-Einstellungen alle X Stunden aktualisieren, ohne meine Rails-App neu zu starten?
Beachten Sie, dass ich nicht in Echtzeit vom Redis-Set lesen möchte.
Ich bin neugierig, warum Sie nicht jedes Mal von redisis lesen möchten, wenn auf $ listOfBannedDomains zugegriffen wird? – kiddorails
, weil es potenziell 1 Milliarde Elemente enthalten könnte. –
Eine Antwort unten hinzugefügt, um Ihre Konstante asynchron aktualisieren zu lassen, ohne die Rails zu blockieren. – kiddorails