Ich muss ein Python-Skript ausführen (das Twitter abhört), das verschiedene Methoden in meiner Django-App aufruft, wenn es Tweets erhält, die einem bestimmten Hashtag entsprechen.
Im Moment starte ich das Skript einfach von Hand weiterdie Befehlszeile, aber ich möchte, dass es innerhalb von django ausgeführt wird, wenn möglich, sodass ich es von dort aus steuern kann und daher keine HTTP-POSTs ausführen muss, wenn neue Daten abgerufen werden.
Ich habe mir Sellerie (kurz) angesehen, aber dies scheint mir zu sein, wenn ich regelmäßig kleine Aufgaben erledige.
Gibt es eine Möglichkeit, Sellerie (oder etwas anderes) zu verwenden, um dieses seit langem laufende "listen to Twitter" -Skript steuern zu können?
Antworten:
1 für die Antwort № 1Du solltest Supervisor um Ihre Django-Anwendung und Ihr Skript auszuführen. Wenn Sie das Skript zu einem Teil des Django-Projekts machen, können Sie es verwenden Django-Signale Mit diesem können Sie ein benutzerdefiniertes Signal schreiben, das jedes Mal von Ihnen gesendet wird twitter
Logik ist getan, was sie tun soll. Signals
blockieren. Wenn Sie möchten, dass sie asynchron verwendet werden Sellerie mit Django
Eine Alternative wäre, Ihre Django-Anwendung und das Twitter-Skript über auszuführen supervisord
und dann a ausstellen REST API
was einen HTTP-POST an die Django-Anwendung. Sie können verwenden TastyPie dafür.