2012-03-26 10 views
0

Ich habe einige Rake-Aufgaben, die jede Minute ausgeführt werden und natürlich die Umgebung.rb jedes Mal hervorbringt. Ich muss eine Konstante setzen, die dynamisch auf Server-Init NUR beim ersten Start des Rails-Servers und nicht bei jeder Rake-Aufgabe gesetzt wird.Wie setze ich eine Konstante in Rails nur einmal bei der Server-Initialisierung, um nicht auf Rake-Tasks zu laufen?

Wie kann das gemacht werden? Wie kann ich sicherstellen, dass eine bestimmte Konstante nur beim primären Start der App nur einmal und nicht bei anderen nachfolgenden Rake-Aufgaben usw. gesetzt wird?

+0

Rake Aufgaben, die jede Minute laufen, sind schlechte Praxis, eine bessere Nutzung Daemons/verzögert Job/etwas ähnliches statt – MikDiet

+0

@Mik_Die schon 'rufus-scheduler' für diese Verwendung. – ylluminate

Antwort

0

Warum schreiben Sie einfach Ihren Wert in eine Datei. Wenn die Datei bereits existiert, verwenden Sie den darin gespeicherten Wert, ansonsten erstellen Sie die Datei und schreiben Sie den Inhalt mit etwas wie Marshal#load und Marshal#dump bei Bedarf?

nur ein Gedanke

+0

So ein bisschen wie das: https://github.com/charlotter-ruby/yettings – ylluminate

+0

sicher, das ist ein Weg, es zu tun – cpjolicoeur

+0

Nun, wenn man das ein bisschen genauer betrachtet und es versucht, erleichtert es einem Setter nicht. – ylluminate

Verwandte Themen