2017-12-03 2 views
1

Ich mache einen einfachen API-Aufruf an die API von Coinbase, um den aktuellen Kauf-/Verkaufspreis von Bitcoin zu erhalten. Ich habe eine before_save-Aktion auf meinem PreismodellAsynchroner API-Aufruf zum Aktualisieren des Modells in Rails

class PriceBtc < ApplicationRecord 
before_save :save_prices 

def save_prices 
    self.buy = PriceBtc.get_buy_price 
    self.sell = PriceBtc.get_sell_price 
    end 
end 

Wie kann ich alle paar Sekunden eine neue Modellerstellung auslösen? Ich kann auf ActiveJob nichts finden, um so schnell etwas zu tun. Ich versuchte, das, wenn Juwel CRON-Jobs automatisch eingerichtet, aber ich konnte nur bekommen es die Aufgabe alle 1 Minute ausführen, wenn Ich mag würde es alle 3 Sekunden

Antwort

2

Durch die Verwendung des rufus-scheduler Juwel sein:

Fügen Sie den Edelstein, bündeln und den Server neu starten:

# Gemfile 
gem 'rufus-scheduler' 

die initializer erstellen:

# config/initializers/scheduler.rb 
require 'rufus-scheduler' 

scheduler = Rufus::Scheduler::singleton 

count = 0 
scheduler.every '5s' do 
    Price.create price: count 
    count += 1 
end 

Jedes Mal, wenn Sie diese Datei bearbeiten, müssen Sie die ser neu starten ver. Es wird nur eine neue Preisaufzeichnung für alle 5 Sekunden erstellt und der Preis wird auf den Wert der Zählung gesetzt. Natürlich wird dir mehr nützlich sein als meiner.

Verwandte Themen