2012-08-30 95 views
4

我們繁忙的企業服務器擁有550個在30個代理上運行的活動版本配置。我們需要一種方法來阻止一些構建在其他構建運行時運行。我已經理解了artefact的依賴關係,這並不能解決我們的問題,因爲構建不依賴於對方,他們只是共享一些資源,如服務器端口號和數據庫連接。一些構建配置在同時運行時會相互衝突,我們需要通過排隊構建(而不是運行構建)的方式來防止這種情況發生,當其中一個構建運行時。在另一個版本運行時排隊而不是運行TeamCity版本

我們已經使用愚蠢的技巧,例如限制構建到特定的代理等等......我正在考慮添加第一個構建步驟來檢查數據庫表中的標記,但這會在添加大量失敗構建時添加我們真正需要的是適當的構建排隊。

我錯過了什麼嗎?這個功能是否已經存在於TeamCity中?

+0

由於您需要序列化的依賴關係是來自實際的* build *(聽起來像是某種部署步驟)的外部因素,因此我認爲您有一個外部解決方案。你的構建是否可以拖延自己並在第三方資源上進行同步?也許你可以構建你自己的隊列解決方案(例如一個小型的Web應用程序),以適當的構建步驟阻止?這樣,實際的構建步驟可以並行進行,只有需要序列化的部分纔會被序列化。 –

回答

0

我非常尊重550配置和30個代理。

我想你已經找到了解決辦法:

  1. 有每個代理一個環境
  2. 分配配置特定座席

我能想象它是多少工作。但我認爲它更清潔,並且比限制運行速度更快,可以同時運行多個配置。