2012-03-10 37 views
5

Tôi đã nhận được nhiệm vụ Celery xảy ra ok, bằng cách sử dụng các thiết lập mặc định trong hướng dẫn và rabbitmq đang chạy trên ubuntu. Tất cả là tốt khi tôi lên lịch một nhiệm vụ không chậm trễ, nhưng khi tôi đưa cho họ một eta, họ sẽ lên kế hoạch trong tương lai như thể đồng hồ của tôi đang ở đâu đó.Nhiệm vụ cần tây eta tắt, sử dụng rabbitmq

Dưới đây là một số mã python được yêu cầu nhiệm vụ:

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) 

Vì vậy, một trong những đầu tiên nên đi ra ngoài ngay lập tức, và sau đó mỗi hai giây. Nhìn vào giao diện điều khiển cần tây của tôi, là người đầu tiên xảy ra ngay lập tức, và sau đó những người khác đang dự kiến ​​hai giây ngoài, nhưng bắt đầu từ ngày mai:

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

Tôi hoàn toàn mới cho cả hai cần tây và RabbitMQ vì vậy bất kỳ lời khuyên về cách để sửa chữa điều này hoặc nơi để tìm kiếm nguyên nhân sẽ là tuyệt vời. Đây là trên một máy ảo VMWare của Ubuntu, nhưng tôi đã đặt đồng hồ chính xác. Cảm ơn!

Trả lời

2

Tôi nghĩ nó thực sự hoạt động như bạn mong đợi. Thời gian bên trái (giữa các dấu ngoặc vuông và trước INFO/MainProcess) được hiển thị trong thời gian địa phương, nhưng thời gian eta được hiển thị là Thời gian UTC. Ví dụ:

Hãy dành thời gian ETA thể hiện trong dòng thứ hai của giao diện điều khiển đầu ra của bạn:

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

Subtract 8 giờ (-08:00 là múi giờ bù đắp) và bạn nhận được:

2012-03-09 17:32:42.971072 

nào chỉ 2 giây sau thời gian đã gửi:

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

Tôi hy vọng rằng làm cho sen se. Đối phó với thời gian thường khiến tôi đau đầu.

+2

Cảm ơn bạn đã phản hồi, nhưng nếu đúng như vậy, tôi sẽ nghĩ rằng nhiệm vụ sẽ được thực hiện. Nhiệm vụ đầu tiên của Te (đếm ngược = 0) thực thi, nhưng không có công việc nào khác thực hiện, nơi chúng sẽ được thực hiện 2 giây sau mỗi lần khác. –

Các vấn đề liên quan