草庐IT

postgresql-client

全部标签

go - 什么会导致 client.Call rpc 在 Go (golang) 中返回错误?

c.Call(...)何时返回非零值?c.Call(...)能否仅在发生网络故障(数据包丢失或超时或类似情况)时返回错误?如果服务器srv崩溃,c.Call(...)会返回错误吗?具体来说,c.Call(...)能否在请求成功到达srv之后但在rpcname处理程序之前返回错误函数返回?import("net/rpc""fmt")funccall(srvstring,rpcnamestring,argsinterface{},replyinterface{})bool{c,errx:=rpc.Dial("unix",srv)iferrx!=nil{returnfalse}deferc.

postgresql - 如何安全地丢弃 golang 数据库/sql 池连接,例如当它们指向只读副本时?

我们一直在将golang的database/sql和github.com/lib/pq与PostgreSQL集群一起使用,这意味着某个作为复制主服务器的数据库服务器可能在前一个主人失败后成为只读副本。最近,我们的低使用率服务设法在其连接池中保留一个连接(没有会打开第二个连接的并发请求),并且其目标已降级为只读副本。结果,对服务的每个写入操作都失败,直到它重新启动。如果与集群建立了新连接,就不会发生这种情况。问题是我找不到在某些类型的错误上丢弃连接的记录方式。database/sql中唯一听起来正确的公共(public)方法是Conn.Close,它将连接返回到池而不关闭它。不调用它会导

postgresql - 如何安全地丢弃 golang 数据库/sql 池连接,例如当它们指向只读副本时?

我们一直在将golang的database/sql和github.com/lib/pq与PostgreSQL集群一起使用,这意味着某个作为复制主服务器的数据库服务器可能在前一个主人失败后成为只读副本。最近,我们的低使用率服务设法在其连接池中保留一个连接(没有会打开第二个连接的并发请求),并且其目标已降级为只读副本。结果,对服务的每个写入操作都失败,直到它重新启动。如果与集群建立了新连接,就不会发生这种情况。问题是我找不到在某些类型的错误上丢弃连接的记录方式。database/sql中唯一听起来正确的公共(public)方法是Conn.Close,它将连接返回到池而不关闭它。不调用它会导

postgresql - 我该如何解决 «panic : sql: unknown driver "postgres" (forgotten import? )»?

我正在尝试使用GO从.csv(预固定宽度/表格)将数据插入POSTGRES。我做了什么:packagemainimport("bufio""database/sql""encoding/csv""encoding/json""fmt""io""log""os")typeConsumidorstruct{CPFstring`json:"CPF"`Privatestring`json:"Private"`Incompletostring`json:"Incompleto"`Compras*Compras`json:"Compras,omitempty"`}typeComprasstruct

postgresql - 我该如何解决 «panic : sql: unknown driver "postgres" (forgotten import? )»?

我正在尝试使用GO从.csv(预固定宽度/表格)将数据插入POSTGRES。我做了什么:packagemainimport("bufio""database/sql""encoding/csv""encoding/json""fmt""io""log""os")typeConsumidorstruct{CPFstring`json:"CPF"`Privatestring`json:"Private"`Incompletostring`json:"Incompleto"`Compras*Compras`json:"Compras,omitempty"`}typeComprasstruct

postgresql - 从 Go 中的 postgres 获取错误代码编号

当我在postgres中遇到错误时,我根本无法检索错误代码。在我的程序测试中,我知道我会得到以下错误“pq:重复的键值违反了唯一约束“associations_pkey”。查看postgres文档,这很可能是23505的pq错误代码。我需要在我的Go程序中获取该编号,以便我可以检查不同类型的错误并以有用的方式响应最终用户。但是,我似乎无法掌握Go中的错误代码,只有错误消息。我的代码如下:stmt,_:=DB.Prepare("INSERTINTOtable(column_1)VALUES($1)")_,err=stmt.Exec("12324354")iferr!=nil{log.Pr

postgresql - 从 Go 中的 postgres 获取错误代码编号

当我在postgres中遇到错误时,我根本无法检索错误代码。在我的程序测试中,我知道我会得到以下错误“pq:重复的键值违反了唯一约束“associations_pkey”。查看postgres文档,这很可能是23505的pq错误代码。我需要在我的Go程序中获取该编号,以便我可以检查不同类型的错误并以有用的方式响应最终用户。但是,我似乎无法掌握Go中的错误代码,只有错误消息。我的代码如下:stmt,_:=DB.Prepare("INSERTINTOtable(column_1)VALUES($1)")_,err=stmt.Exec("12324354")iferr!=nil{log.Pr

go - 如何在 Go 中发布 http.Client?

我为HTTP2连接构建了一个http.Client,我需要做什么来释放客户端和使用的资源? 最佳答案 http.Client不需要任何特殊方式来释放“已用”资源。当它变得不可访问时,它使用的内存将被垃圾收集器回收。http.Client不存储连接或状态信息。文档甚至指出http.Client应该被重用:TheClient'sTransporttypicallyhasinternalstate(cachedTCPconnections),soClientsshouldbereusedinsteadofcreatedasneeded.C

go - 如何在 Go 中发布 http.Client?

我为HTTP2连接构建了一个http.Client,我需要做什么来释放客户端和使用的资源? 最佳答案 http.Client不需要任何特殊方式来释放“已用”资源。当它变得不可访问时,它使用的内存将被垃圾收集器回收。http.Client不存储连接或状态信息。文档甚至指出http.Client应该被重用:TheClient'sTransporttypicallyhasinternalstate(cachedTCPconnections),soClientsshouldbereusedinsteadofcreatedasneeded.C

go - 如何使用 kubernetes go-client 获取与 kubectl 提供的相同的 Pod 状态信息

使用kubernetesgo-client(k8s.io/client-go/kubernetes),我知道如何获取pod.Status并且我找到了pod.Status.Phase很有用(docs)。例如,我可以使用此输出所有Pod的Pod状态阶段:...api:=clientset.CoreV1()pods,err:=api.Pods("").List(metav1.ListOptions{})fori,pod:=rangepods.Items{podstatusPhase:=string(pod.Status.Phase)podCreationTime:=pod.GetCreati