2011-08-29 10 views
8

Ho una serie di attività di manutenzione per un'applicazione WSGI Python che sono un po 'troppo complesse per un crontab (i lavori devono essere eseguiti a frequenze derivate dalla dimensione della coda di lavoro, gestire un pool di connessioni a un gruppo di istanze EC2 , eccetera).Come implementare un programma python basato su eventi di lunga durata?

Come devo implementare un programma python basato su eventi di lunga durata? Non ho mai avuto bisogno di questa funzionalità prima, quindi non sono nemmeno sicuro di cosa google.

+1

http://twistedmatrix.com/trac/? – zengr

+0

@zengr, twisted e python-daemon sono le prime due cose che mi vengono in mente, ma volevo vedere se mi mancava qualcosa nella libreria standard prima di impegnarmi in qualcosa. Sono ancora un po 'nuovo in Python. –

risposta

7

La maggior parte dei siti Python moderni e grandi utilizza Celery per questo tipo di lavoro. È una coda di attività distribuita che supporta anche la pianificazione delle attività.

Anche se probabilmente un po 'pesante per un sito piccolo, crescerà con te. Sto cercando di implementarlo da solo (sans Rabbit) a breve.

Recentemente ho trovato un'altra scelta per gli utenti di django, django-tasks che si concentra su un numero inferiore di lavori di elaborazione batch. C'è anche django-ztask usando zeromq.

Addendum: appena trovato gearman che ha python bindings.

+0

Ah, a quanto pare la query di google che cercavo era "python asynchronous queue". :) –

Problemi correlati