2017-07-07 20 views
0

Ich habe eine persönliche Website, die ich den Preis von Bitcoin verfolgen möchte, aber ich möchte, dass der Code alle fünf Minuten im hinteren Ende der Website ausgeführt wird.Python Django und Sellerie periodictasks

Ich bin neu zu Sellerie, also weiß ich nicht viel von dem, was ich tue. Davon abgesehen habe ich meine installed_apps aktualisiert, ich habe djcellery importiert und alle Aktualisierungen auf der Einstellungsseite vorgenommen.

Ich habe eine periodische Aufgabe über die Admin-Website eingerichtet, weil sie ziemlich einfach aussah, aber ich konnte den Code nicht automatisch ausführen, obwohl meine Funktion eine Option als Aufgabe ist.

Ich bin ziemlich fest hier und jede Hilfe wäre genial. Vielen Dank.

def bitcoin(): 
    url = "https://api.coindesk.com/v1/bpi/currentprice.json" 
    request = Request(url) 
    response = urlopen(request) 
    the_page = response.read() 
    data = json.loads(the_page) 
    btc_price = data['bpi']['USD']['rate'] 
    print('According to CoinDesk, the price of bitcoin is: ' + 
    str(btc_price)) 
+0

Was ist das erwartete Ergebnis? Es gibt keinen Django- oder Sellerie-Code in Ihrer Frage. Sowohl Django als auch Sellerie sind nicht trivial zu konfigurieren und zu betreiben. Wenn Sie nur eine geplante Aufgabe ausführen möchten, gibt es hierfür einfachere Optionen. –

Antwort

0

können Sie die Sellerie cron schedules Dokumentation Django Kasse, die ein paar Beispiele für das Erstellen geplante Aufgaben hat.

Unten ist ein triviales Beispiel aus ihrer docs:

from celery.schedules import crontab 

app.conf.beat_schedule = { 
    # Executes every Monday morning at 7:30 a.m. 
    'add-every-monday-morning': { 
     'task': 'tasks.add', 
     'schedule': crontab(hour=7, minute=30, day_of_week=1), 
     'args': (16, 16), 
    }, 
} 
Verwandte Themen