2015-10-14 111 views
0

比方說,我有rake任務獲取調用rake任務

taskA --(calls)--> taskB --(calls)--> taskC 

有什麼辦法鏈,在taskC中間得到調用耙任務列表中的鏈條?即rake已被調用來完成此任務的任務鏈?

caller在此例中返回一個不太有用的堆棧跟蹤。

謝謝!

回答

1

我不知道是否有一個本地的解決方案,但這裏是我會做:

  • 創建一個名爲「task_chain.json」
  • 在每個的開始文件你的任務,追加任務的名稱到哈希裏面的文件:

    #getting the list 
    task_list = JSON.parse(File.open("task_chain.json")) 
    
    #updating the list 
    task_list << "my_new_task_name" 
    
    #writing the list 
    File.open("task_chain.json", "w"){ |file| 
        file.write(JSON.pretty_generate(task_list)) 
    } 
    
  • 然後,你只需要訪問該文件,以瞭解你的任務鏈:task_list = JSON.parse(File.open("task_chain.json"))

您可能希望將其設置爲方法,因爲不會一遍又一遍地重複相同的代碼。並且不要忘記在鏈條的第一個任務之前清空文件。