小编ada*_*amc的帖子

将上下文从 gRPC 端点传递到 goroutine 收到上下文取消错误

我试图将上下文从传入的 gRPC 端点传递到 goroutine,该 goroutine 负责向外部服务发送另一个请求,但我正在Error occurred: context canceledctxhttp.Getgoroutine 内的函数调用接收消息:

package main

import (
  "fmt"
  "net"
  "net/http"
  "os"
  "sync"

  "golang.org/x/net/context/ctxhttp"

  dummy_service "github.com/myorg/testing-apps/dummy-proto/gogenproto/dummy/service"
  "github.com/myorg/testing-apps/dummy-proto/gogenproto/dummy/service/status"
  "golang.org/x/net/context"

  "google.golang.org/grpc"
  "google.golang.org/grpc/reflection"
)

func main() {
  var err error

  grpcServer := grpc.NewServer()

  server := NewServer()
  dummy_service.RegisterDummyServer(grpcServer, server)
  reflection.Register(grpcServer)

  lis, err := net.Listen("tcp", ":9020")
  if err != nil {
    fmt.Printf("Failed to listen: %+v", err)
    os.Exit(-1)
  }
  defer lis.Close()

  wg := sync.WaitGroup{}

  wg.Add(1)
  go func() {
    defer wg.Done()
    fmt.Println("Starting gRPC Server")
    if err := …
Run Code Online (Sandbox Code Playgroud)

go goroutine grpc

5
推荐指数
1
解决办法
4411
查看次数

优化具有非空约束的 Postgres JSONB 查询

我有一个 Postgres 9.4.4 数据库,其中包含 170 万条记录,以下信息存储在名为 的表中调用的 JSONB 列dataaccounts

data: {
  "lastUpdatedTime": "2016-12-26T12:09:43.901Z",
  "UID": "2c5bb7fd-1a00-4988-8d92-ffaa52ebc20d",
  "data": {
    "country": "UK",
    "verified_at": "2017-01-01T23:49:10.217Z"
  }
}
Run Code Online (Sandbox Code Playgroud)

数据格式无法更改,因为这是旧信息。

我需要获取国家/地区所在的所有帐户UK,该verified_at值不为空并且该lastUpdatedTime值大于某个给定值。

到目前为止,我有以下查询:

SELECT * FROM "accounts"
WHERE (data @> '{ "data": { "country": "UK" } }')
AND (data->'data' ? 'verified_at')
AND ((data->'data' ->> 'verified_at') is not null)
AND (data ->>'lastUpdatedTime' > '2016-02-28T05:49:08.511846')
ORDER BY data ->>'lastUpdatedTime' LIMIT 100 OFFSET 0;
Run Code Online (Sandbox Code Playgroud)

以及以下指标:

"accounts_idxgin" gin (data)
"accounts_idxgin_on_data" gin …
Run Code Online (Sandbox Code Playgroud)

postgresql jsonb

2
推荐指数
1
解决办法
2787
查看次数

标签 统计

go ×1

goroutine ×1

grpc ×1

jsonb ×1

postgresql ×1