2012-03-10 7 views
5

을 사용하여 셀러리 작업 에타가 해제되었습니다. 자습서의 기본 설정과 우분투에서 실행되는 rabbitmq를 사용하여 셀레어 작업이 정상적으로 처리되었습니다. 지체없이 작업을 예약 할 때 모두 괜찮습니다. 그러나 내가 그들에게 에타를 줄 때 미래에 내 시계가 어딘가에있는 것처럼 일정 잡히게됩니다. rabbitmq

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) 

그래서 첫 번째는 즉시 이동해야하고 2 초마다 : 여기

은 작업에 요구하고 일부 파이썬 코드입니다. 내 셀러리 콘솔을 살펴보면, 첫 번째는 즉시 발생하고 다른 사람은 이초 떨어져 예정되어 있지만, 내일부터 :

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

나는 셀러리와 RabbitMQ 모두 완전히 새로운 해요 그래서 해결하는 방법에 대한 팁 원인이나 원인을 찾는 곳이 좋을 것입니다. 이것은 VM웨어 가상 머신의 우분투지만, 나는 정확하게 시계가 설정되어 있습니다. 감사합니다.

답변

2

실제로 예상대로 작동한다고 생각합니다. 왼쪽 (대괄호 사이와 INFO/MainProcess 사이)의 시간은 로컬 시간에 시간으로 표시되지만, eta 시간은 UTC 시간으로 표시됩니다. 예를 들어 : (시간대 오프셋 -08:00됩니다)

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

빼기 8 시간 당신이 얻을 :

는 콘솔 출력의 두 번째 줄에 표시되는 ETA의 시간을 가지고

2012-03-09 17:32:42.971072 

을 어느 보낸 시간 바로 2 초 후에 나타납니다.

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

se. 시간을 다루는 것은 종종 두통을 안겨줍니다.

+2

답장을 보내 주셔서 감사합니다. 그렇지만이 경우 작업이 실행되고 있다고 생각합니다. 첫 번째 작업 (카운트 다운 = 0)은 실행되지만 다른 작업은 2 초 후에 실행되어야합니다. –