Stellen Sie sicher, dass in Python regelmäßig Cron-ähnliche Jobs ausgeführt werden

Es gibt eine Bibliothek namens huey, die Aufgabenwarteschlangen in Python realisiert. Sie können die regelmäßige Jobausführung einfacher implementieren als Sellerie, das für die Bibliothek derselben Task-Warteschlange bekannt ist. Dieses Mal werde ich nicht auf die normale Ausführung von Aufgaben eingehen.

Vorbereitungen

--Installation der Bibliothek

pip install huey
pip install redis

--Starten Sie Redis für Broker

Beginnen Sie einfach mit Docker

docker run --rm -d -p 6379:6379 redis

Beschreiben Sie die Aufgabe

Dieses Mal haben wir Redis über den Broker gestartet, also rufen wir Redis Huey an. Sie können einen periodischen Job registrieren, indem Sie der Funktion einen periodic_task-Dekorator hinzufügen.

main.py


from huey import RedisHuey, crontab
import time

huey = RedisHuey(host="127.0.0.1")


@huey.periodic_task(crontab(minute="*"))
def test():
    print("process start")
    time.sleep(5)
    print("process end")

Geben Sie die Ausführungszeit des Jobs mit der Crontab als Dekorationsargument an. Diese Zeit ist jede Minute.

Starten Sie Worker

Nach der Installation von huey können Sie den Befehl huey_consumer verwenden, mit dem der Arbeitsprozess gestartet wird.

$ huey_consumer main.huey

[2020-07-16 23:18:59,827] INFO:huey.consumer:MainThread:Huey consumer started with 1 thread, PID 2744 at 2020-07-16 14:18:59.827805
[2020-07-16 23:18:59,828] INFO:huey.consumer:MainThread:Scheduler runs every 1 second(s).
[2020-07-16 23:18:59,828] INFO:huey.consumer:MainThread:Periodic tasks are enabled.
[2020-07-16 23:18:59,828] INFO:huey.consumer:MainThread:The following commands are available:
+ main.test
[2020-07-16 23:18:59,836] INFO:huey.consumer.Scheduler:Scheduler:Enqueueing periodic task main.test: 30a61be7-903c-4fa7-815f-c5c013074085.
[2020-07-16 23:18:59,841] INFO:huey:Worker-1:Executing main.test: 30a61be7-903c-4fa7-815f-c5c013074085
process start
process end
[2020-07-16 23:19:04,847] INFO:huey:Worker-1:main.test: 30a61be7-903c-4fa7-815f-c5c013074085 executed in 5.005s
[2020-07-16 23:19:59,830] INFO:huey.consumer.Scheduler:Scheduler:Enqueueing periodic task main.test: 8166b273-1b97-427a-a349-a2772ea67fd2.
[2020-07-16 23:19:59,834] INFO:huey:Worker-1:Executing main.test: 8166b273-1b97-427a-a349-a2772ea67fd2
process start
process end
[2020-07-16 23:20:04,839] INFO:huey:Worker-1:main.test: 8166b273-1b97-427a-a349-a2772ea67fd2 executed in 5.005s

Sie können sehen, dass der Job jede Minute ausgeführt wird.

das ist alles

Recommended Posts

Stellen Sie sicher, dass in Python regelmäßig Cron-ähnliche Jobs ausgeführt werden
Führen Sie automatisierte Jobs in Python aus
Führen Sie Shell-Befehle in Python aus
Führen Sie Python unittest parallel aus
Mach nicht test.py in Python!
Erstellen Sie ein Lesezeichen in Python
Stellen Sie Opencv in Python zur Verfügung
Segfo Python in 2 Zeilen
Segfo Python in einer Zeile
Lassen Sie uns "Python -m Antigravitation" in Python ausführen
Führen Sie den Shell-Befehl / Python in R aus
Machen Sie die Standardausgabe in Python nicht blockierend
Segfo Python in drei Zeilen
Führen Sie unittest in Python aus (für Anfänger)
Führen Sie einen einfachen Algorithmus in Python aus
Erstellen Sie mit Python eine GIF-Animation für ASCII-Grafiken
Führen Sie AzureKinect an Heiligabend in Python aus.
Führen Sie den Python-Interpreter im Skript aus
Automatisieren Sie Jobs, indem Sie Dateien in Python bearbeiten
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Führen Sie Python in C ++ unter Visual Studio 2017 aus
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Führen Sie die Google Analytics-API (Core v3) in Python aus
Führen Sie Python YOLOv3 in C ++ unter Visual Studio 2017 aus
Epoche in Python
Zwietracht in Python
Kopieren Sie die Liste in Python
Deutsch in Python
Bis das Changefinder-Sample auf Python läuft
DCI in Python
Quicksort in Python
nCr in Python
Plink in Python
Konstante in Python
Lassen Sie uns einige Beispiele für die Benachrichtigungsverarbeitung in Python erstellen
FizzBuzz in Python
SQLite in Python
Machen Sie mit Python eine Joyplot-ähnliche Handlung von R.
Schritt AIC in Python
So führen Sie LeapMotion mit Nicht-Apple Python aus
LINE-Bot [0] in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python