Ho ottenuto che le attività di Celery si svolgessero correttamente, utilizzando le impostazioni predefinite nelle esercitazioni e con rabbitmq in esecuzione su ubuntu. Tutto va bene quando pianifico un compito senza ritardi, ma quando do loro un eta, vengono programmati in futuro come se il mio orologio fosse spento da qualche parte.L'attività di sedano eta è disattivata, con rabbitmq
Ecco alcuni codice Python che chiede per le attività:
for index, to_address in enumerate(email_addresses):
# schedule one email every two seconds
delay = index * 2
log.info("MessageUsersFormView.process_action() scheduling task,"
"email to %s, countdown = %i" % (to_address, delay))
tasks.send_email.apply_async(args=[to_address, subject, body],
countdown = delay)
Quindi la prima uno dovrebbe andare immediatamente, e successivamente ogni due secondi. Guardando la mia console sedano, il primo avviene immediatamente, e poi gli altri sono in programma due secondi di distanza, ma a partire da domani:
[2012-03-09 17:32:40,988: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[24fafc0b-071b-490b-a808-29d47bbee435]
[2012-03-09 17:32:40,989: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[3eb6c3ea-2c84-4368-babe-8a2ac0093836] eta:[2012-03-10 01:32:42.971072-08:00]
[2012-03-09 17:32:40,991: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[a53110d6-b704-4d9c-904a-8d74b99a33af] eta:[2012-03-10 01:32:44.971779-08:00]
[2012-03-09 17:32:40,992: INFO/MainProcess] Got task from broker: stabil.tasks.send_email[2363329b-47e7-4edd-b38e-b09fed232003] eta:[2012-03-10 01:32:46.972422-08:00]
Sono totalmente nuovo sia Sedano e RabbitMQ così qualche consiglio su come risolvere questo o dove cercare la causa sarebbe grandioso. Questo è su una macchina virtuale VMWare di Ubuntu, ma ho l'orologio impostato correttamente. Grazie!
Grazie per la risposta, ma se fosse il caso, penserei che le attività sarebbero state eseguite. Il primo task (countdown = 0) viene eseguito, ma nessuno degli altri lo fa, dove dovrebbero essere eseguiti 2 secondi uno dopo l'altro. –