Ciao lista, ciao Marco De Paoli. Ecco un breve riassunto del passaggio da Celery a Django-Q
Primo giorno: Iniziata la transizione a Django-Q 1) Installato django-q, configurazione di base su redis 2) Provato a far partire il primo task con "async". Perfetto. Funziona. 3) Rimosso celery e tutta la merda che lo circonda (che soddisfazione!) 4) Convertito tutti i ".delay" di celery ad "async" di django-q 5) Rimosso tutti i task registrati con il decoratore (li usavo con celerybeat) -> Faccio partire tests Dimenticato alcuni imports e altri riferimenti. Cancella! Cancella! Edita! Edita! Ora i tests iniziano a darmi qualche problema. Ci sto lavorando. Ho 400 test circa e 80 mi stanno facendo il middlefinger. Inoltre i log di django_q non mi vanno a braccetto con gli altri log. Secondo giorno Aggiornato errori e aggiornati i tests. Ho dovuto, per ora, disabilitare il 'retry' in due tasks costruiti per celery che richiamavano se stessi in caso di errore. Vedrò di convertirli a Django-Q. Ho dovuto cambiare varie classi da subclass di TestCase a subclass di TransictionalTestCase per evitare problemi con la connessione al database. Come risultato, molto tests ora sono decisamente più lenti. Due test in particolare li ho dovuti disabilitare. Passano se li lancio individualmente, ma non funzionano nel test harness. Ho risolto anche il problema del log. Stranamente devi registrare `django-q` nel logging, ma l'import viene fatto come `django_q`. L'ho scoperto leggendo il codice di django-q. Faccio il primo deploy, sostituendo tutto cio' che riguarda celery. La semplicita' e' tale che funziona da subito. Verifico sul server e si, i task vengono aggiunti e processati. Faccio partire l'autoscaling ed il secondo cluster viene aggiunto e i task mistati. Provo ad aggiungere lo scheduling direttamente da django admin. I task vengono processati. Niente doppioni, niente cazzate. Tutto funziona. PRO: - Facilissimo da configurare - Usa Django Admin per i successful tasks, failed tasks e lo scheduling - Un solo processo da avviare sul server - Conversione del codice da Celery a Django-Q semplice - Usa Django! CONTRO: - Non ha tutte le feature di Celery, ma a me sinceramente non serve - Non esiste un monitor dei tasks in coda a meno che non usi Django ORM come broker. Devi ripiegare su qualcosa per il tuo broker -- Karim N. Gorjux
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python