2016-06-02 14 views
0

Ich habe das folgende Python-Skript, das sqs abfragt und alle Nachrichten verarbeitet, die in die Warteschlange geschoben werden. Ich laufe python process.py im Terminal und sehe, dass es so verarbeitet, wie es sein sollte.boto3 nach neuen SQS-Nachrichten im Hintergrund suchen

Was ist die beste oder bevorzugte Methode, um dieses Skript im Hintergrund laufen zu lassen?

conn = boto.sqs.connect_to_region(REGION , aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY) 
q = conn.get_queue(PROCESS_QUEUE) 

def process_message(m): 
    # do some processing 
    # q.delete_message(m) 

while 1: 
    q.set_message_class(RawMessage) 
    m = q.read(wait_time_seconds=20) 

    if m: 
     print 'processing...' 
     process_message(m, q) 

    time.sleep(10) 

Antwort

0

Sie können bash Funktionen hier verwenden.

Schnell und schmutzig:

python process.py & Rennen wird es als Hintergrundprozess starten.

einen Blick auf nohup, haben die die Prozessprotokolle usw.

saubere Art und Weise speichert dies zu tun:

supervisor verwenden, ist es eine Art von Service-Manager, die Sie Daemons zu laufen erlaubt in der Hintergrund.

Schauen Sie sich die docs, Einrichten ist nicht lange, kommentieren, wenn Sie Hilfe benötigen.

+0

schnell und schmutzig wird, danke! –

+0

Gern geschehen :) –