<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 創建引擎組 在xorm中,通過創建引擎組EngineGroup來實現對從數據庫(Master/Slave)讀寫分離的支持。在[創建引擎](http://www.hmoore.net/xormplus/xorm/167078)章節中,我們已經介紹過了,在xorm里面,可以同時存在多個Orm引擎,一個Orm引擎稱為Engine,一個Engine一般只對應一個數據庫,而EngineGroup一般則對應一組數據庫。EngineGroup通過調用xorm.NewEngineGroup生成,如: ~~~ import ( _ "github.com/lib/pq" "github.com/xormplus/xorm" ) var eg *xorm.EngineGroup func main() { conns := []string{ "postgres://postgres:root@localhost:5432/test?sslmode=disable;", "postgres://postgres:root@localhost:5432/test1?sslmode=disable;", "postgres://postgres:root@localhost:5432/test2?sslmode=disable", } var err error eg, err = xorm.NewEngineGroup("postgres", conns) } ~~~ or ~~~ import ( _ "github.com/lib/pq" "github.com/xormplus/xorm" ) var eg *xorm.EngineGroup func main() { var err error master, err := xorm.NewEngine("postgres", "postgres://postgres:root@localhost:5432/test?sslmode=disable") if err != nil { return } slave1, err := xorm.NewEngine("postgres", "postgres://postgres:root@localhost:5432/test1?sslmode=disable") if err != nil { return } slave2, err := xorm.NewEngine("postgres", "postgres://postgres:root@localhost:5432/test2?sslmode=disable") if err != nil { return } slaves := []*xorm.Engine{slave1, slave2} eg, err = xorm.NewEngineGroup(master, slaves) } ~~~ 創建完成EngineGroup之后,并沒有立即連接數據庫,此時可以通過eg.Ping()來進行數據庫的連接測試是否可以連接到數據庫,該方法會依次調用引擎組中每個Engine的Ping方法。另外對于某些數據庫有連接超時設置的,可以通過起一個定期Ping的Go程來保持連接鮮活。EngineGroup可以通過eg.Close()來手動關閉,但是一般情況下可以不用關閉,在程序退出時會自動關閉。 * NewEngineGroup方法 `func NewEngineGroup(args1 interface{}, args2 interface{}, policies ...GroupPolicy) (*EngineGroup, error)` 前兩個參數的使用示例如上,有兩種模式。 模式一:通過給定DriverName,DataSourceName來創建引擎組,每個引擎使用相同的Driver。每個引擎的DataSourceNames是[]string類型,第一個元素是Master的DataSourceName,之后的元素是Slave的DataSourceName。 模式一:通過給定`*xorm.Engine`,`[]*xorm.Engine`來創建引擎組,每個引擎可以使用不同的Driver。第一個參數為Master的`*xorm.Engine`,第二個參數為Slave的`[]*xorm.Engine`。 >NewEngineGroup方法,第三個參數為`policies`,為Slave給定負載策略,該參數將在[負載策略](http://www.hmoore.net/xormplus/xorm/413727)章節詳細介紹,如示例中未指定,則默認為輪詢負載策略。 * Master方法 `func (eg *EngineGroup) Master() *Engine` 返回Master數據庫引擎 * Slave方法 `func (eg *EngineGroup) Slave() *Engine` 依據給定的負載策略返回一個Slave數據庫引擎 * Slaves方法 `func (eg *EngineGroup) Slaves() []*Engine` 返回所以Slave數據庫引擎 * GetSlave方法 `func (eg *EngineGroup) GetSlave(i int) *Engine` 依據一組Slave數據庫引擎`[]*xorm.Engine`下標返回指定Slave數據庫引擎。通過給定DriverName,DataSourceName來創建引擎組,則DataSourceName的第二個元素的數據庫為下標0的Slave數據庫引擎。 * SetPolicy方法 `func (eg *EngineGroup) SetPolicy(policy GroupPolicy) *EngineGroup` 設置引擎組負載策略
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看