[PYTHON] Sie können mit PyQS eine Task-Warteschlange erstellen

Bei der Steuerung der Warteschlange mit Python ist Sellerie ein Standard, aber [PyQS] verwendet Amazon SQS (https://github.com/spulec/PyQS). Ich habe das gefunden und versucht, es eine Weile zu benutzen. Es fiel mir schwer, weil sich das Verhalten geringfügig von README unterscheidet, aber ich bin dankbar, dass es möglich ist, eine sehr einfache Task-Warteschlange zu erstellen. ..

Installation

Die Installation ist einfach und ein Pip-Befehl ist erforderlich. pip install pyqs

Umgebungsvariable

Die folgenden Umgebungsvariablen sind erforderlich.

--AWS_ACCESS_KEY_ID`` AWSS_SECRET_ACCESS_KEY ... Lese- / Schreibberechtigung für Amazon SQS --PYTHONPATH` ... Stellen Sie das von Queue ausgeführte Python-Skript als Referenz zur Verfügung.

Aufgabe

Importieren Sie die Dekorationsaufgabe aus pyqs und setzen Sie sie auf die Funktion, die Sie in der Warteschlange registrieren möchten.

qqq/tasks.py


from pyqs import task


@task('queue0')
def another_task(message):
    print "another_task: message={}".format(message)


@task('queue0')
def send_email(subject):
    print "send_email: subject={}".format(subject)

Registrierung in der Warteschlange

add_queue.py


from qqq.tasks import another_task, send_email
from settings import config

for i in range(0, 100):
    send_email.delay(subject='hogehoge')
    another_task.delay(message='hogehogehoge')

Starten Sie Worker

run_queue.sh


#! /bin/bash

export PYTHONPATH=`pwd`
export QUEUE='queue0'
pyqs $QUEUE

Laut Githubs README sollte der Name der Warteschlange "queue0.tasks.send_email" oder "queue.tasks.another_task" sein. Das tatsächliche SQS erlaubt jedoch keine Punkte im Warteschlangennamen, sodass die im @ task-Dekorator deklarierte Warteschlange 0 der Warteschlangenname ist. Ich habe die Quelle ungefähr 2 Stunden lang verfolgt, bevor ich das verstanden habe.

Zusammenfassung

Es ist attraktiv, sofort eine Task-Warteschlange erstellen zu können, wenn Sie Zugriff auf Amazon SQS haben, ohne selbst einen Nachrichtenbroker einrichten zu müssen. Ich bin auch dankbar, dass SQS fast kostenlos ist.

Github

Die Quelle ist hier

Recommended Posts

Sie können mit PyQS eine Task-Warteschlange erstellen
Fühlen Sie sich frei, die Festplatte zu verschlüsseln
Sie können den asynchronen http-Client von Python mit Trio + httpx implementieren
Fühlen Sie sich frei, 100 Datenwissenschaften mit Google Colab und Azure Notebooks zu schlagen!
Ich habe versucht, eine ML-Pipeline mit Cloud Composer zu erstellen