2012-03-10 10 views
5

He recibido las tareas de apio, está bien, usando la configuración predeterminada en los tutoriales y rabbitmq ejecutándose en ubuntu. Todo está bien cuando programo una tarea sin demora, pero cuando les doy una eta, se programan en el futuro como si mi reloj estuviera apagado en alguna parte.tarea de apio eta está desactivada, usando rabbitmq

Aquí hay un código Python que está pidiendo tareas:

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) 

Así que la primera se debe ir inmediatamente, y luego cada dos segundos. En cuanto a mi consola apio, el primer pase de inmediato, y luego los demás se han programado dos segundos de diferencia, pero a partir de mañana:

[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] 

estoy totalmente nuevo para ambos apio y RabbitMQ por lo que cualquier consejos sobre cómo solucionar esto o dónde buscar la causa sería genial. Esto está en una máquina virtual VMWare de Ubuntu, pero tengo el reloj configurado correctamente. Gracias!

Respuesta

2

Creo que en realidad está funcionando como esperaba. La hora de la izquierda (entre los corchetes y antes de INFO/MainProcess) se presenta en local vez, pero la hora eta se muestra como UTC hora. Por ejemplo:

Tómese el tiempo ETA se presenta en la segunda línea de la salida de la consola:

2012-03-10 01:32:42.971072-08:00 

Restar 8 horas (-08:00 es la zona horaria offset) y se obtiene:

2012-03-09 17:32:42.971072 

Qué es sólo 2 segundos después de la hora de envío:

2012-03-09 17:32:40,989 

Espero que haga sentir se. Lidiar con los momentos a menudo me da dolor de cabeza.

+2

Gracias por la respuesta, pero si ese fuera el caso, creo que las tareas se ejecutarán. La primera tarea (cuenta regresiva = 0) se ejecuta, pero ninguna de las demás, donde deberían ejecutarse 2 segundos después de la otra. –

Cuestiones relacionadas