我爲jetbrains工具團隊編寫了一個插件。它幾乎只是一個服務器監聽器,用於監聽正在觸發的構建,並輸出一些文本文件,其中包含關於不同構建的信息,如觸發它的內容,其中存在多少變化等等。完成後,我編寫了一個可以輸入當服務器正在運行並踢出構建時,將信息輸入teamcity。我希望能夠在構建運行後獲得構建的構件,但問題是我不知道每個構建運行需要多長時間。有時30分鐘是30秒。關於服務器監聽器的Python問題
所以我在python中用這條線開始構建。
urllib.urlopen('http://'+username+':'+password+'@localhost/httpAuth/action.html?add2Queue='+btid+'&system.name=<btid>&system.value=<'+btid+'>&system.name=<buildNumber>&system.value=<'+buildNumber+'>')
構建運行後(某些不確定的時間)我想用這行來獲取我的文本文件。
urllib.urlopen('http://'+username+':'+password+'@localhost/httpAuth/action.html?add2Queue='+btid+'&system.name=<btid>&system.value=<'+btid+'>&system.name=<buildNumber>&system.value=<'+buildNumber+'>')
問題再次出現,我不知道在執行第二行之前要等多久。通常在Java中,我會做第二個線程的睡眠一段時間,並等待構建完成。我不知道如何在Python中做到這一點。因此,如果任何人有一個想法,要麼如何做到這一點在Python或更好的方式來做到這一點,我將不勝感激。如果我需要更好地解釋我自己,請讓我知道。
Grant-
如果構建沒有完成並且您打電話給第二塊,會發生什麼? – Christopher 2009-08-20 17:04:17
它會返回一個http 404錯誤。這與訪問不存在的html頁面相同,因爲一旦構建完成,文本文件將只存在於服務器上的該位置。 – cozmokramer8 2009-08-20 17:21:24