2016-04-21 15 views
7

Nói rằng tôi có một công việc với cấu trúc phụ thuộc sauLuigi thất bại trong việc hoàn thành tất cả các nhiệm vụ được liệt kê trong yêu cầu phương pháp

class ParentTask(luigi.Task): 
    def requires(self): 
     return [ChildTask(classLevel=x) for x in self.class_level_list] 
    def run(self): 
     yadayda 

Nhiệm vụ con chạy tốt trên nó sở hữu. Phụ huynh kiểm tra chính xác tất cả các nhiệm vụ con cho trạng thái kết thúc. Tuy nhiên, khi nhiệm vụ con đầu tiên kết thúc, bộ lập lịch đánh dấu nhiệm vụ cha mẹ là xong. với thông báo sau:

Scheduled 15 tasks of which: 
* 3 ran successfully: 
    - 1 CleanRecord(...) 
    - 1 EstimateQuestionParameter(classLevel=6, qdt=2016-04-19, subject=english) 
    - 1 GetLog(classLevel=6, qdt=2016-04-19, subject=english) 
* 12 were left pending, among these: 
    * 12 were left pending because of unknown reason: 
     - 5 EstimateQuestionParameter(classLevel=1...5, qdt=2016-04-19, subject=english) 
     - 5 GetLog(pool=None, classLevel=1...5, qdt=2016-04-19, subject=english) 
     - 1 UpdateQuestionParameter(qdt=2016-04-19, lastQdt=2016-03-23, subject=english, isInit=False) 
     - 1 UpdateQuestionParameterBuffer(qdt=2016-04-19, subject=english, src_table=edw.edw_behavior_question_record_exam_new) 

This progress looks :) because there were no failed tasks or missing external dependencies 
+0

chưa bao giờ thấy lỗi này xảy ra ... Tôi nghĩ rằng nó sẽ được khá khó để biết những gì đang xảy ra mà không nhìn thấy mã bạn đang chạy – matagus

+0

Bạn có nghi ngờ? Tôi không thể đăng tất cả mã src nhưng có thể xây dựng một số mã giả đại diện cho tác vụ. – Junchen

+0

@Junchen Vui lòng đăng mã có liên quan hoặc mã giả. – shiva

Trả lời

1

Tôi nghĩ điều này xảy ra vì nhân viên của bạn bị ngắt kết nối khỏi lịch biểu. Nhịp tim của nhân viên không đạt được bộ lập lịch vì phân vùng mạng hoặc, nhiều khả năng hơn, bởi vì chúng không bao giờ được gửi do issue này.

Bạn có hai lựa chọn để làm việc xung quanh vấn đề này:

  • Tăng worker-disconnect-delay cài đặt ([scheduler] phần trong cấu hình, độ tuổi 60 mặc định)
  • Sử dụng nhiều hơn một công nhân cho công việc của bạn, ví dụ --workers 2 (nếu đó là lý do thứ hai)
+0

Tôi thêm keep_alive vào phần công nhân của tập tin cấu hình luigi. Vấn đề không xuất hiện lại. Tôi nghĩ rằng giải pháp của bạn là đúng. – Junchen

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