2016-04-15 2 views
0

Ich habe ein Formular, wenn Benutzer Tag in Woche und Zeitraum (zum Beispiel Montag von 02:00 bis 03:00 Uhr) festlegen kann. Dann möchte ich bestimmte Methode (in regelmäßigen Abständen, zum Beispiel alle 30 Sekunden) ausführen, aber nur während eines bestimmten Zeitintervalls (es sollte jeden Montag zwischen 02:00 und 03:00, alle 30 Sekunden im Hintergrund durchgeführt werden). Ist dies möglich, wenn das Zeitintervall dynamisch (vom Benutzer) erstellt wird?Run Methode periodisch in manuell erstellten Intervall in Rails

+0

Versuchen Sie dies: http://StackOverflow.com/Questions/4602418/Rails-Whenever-Gem-Dynamic-Values ​​ –

+0

versuchen Sie mit delayed_job Edelstein in Schienen –

+0

Sie können Tools wie rufus-Scheduler https://github.com verwenden/jmettraux/rufus-scheduler –

Antwort

1

Sie könnten einen Cron-Job definieren, der eine Rake-Aufgabe ausführt (siehe auch für syntaktischen Zucker:). Ihre Rake-Aufgabe könnte alle X Sekunden ausgeführt werden und die Datenbank nach neuen Jobs abfragen.

Wenn Sie jedoch eine Rake-Task über Cron aufrufen, wird die Rails-App jedes Mal neu gestartet. Daher wäre sitiekiq (http://sidekiq.org/) in Kombination mit sidekiq-scheduler (https://github.com/moove-it/sidekiq-scheduler) sinnvoller.