代码拉取完成,页面将自动刷新
package protocb
import (
"log"
"time"
"gitee.com/wujianhai/protoactor-go/actor"
"gitee.com/wujianhai/protoactor-go/persistence"
"github.com/couchbase/gocb"
)
type Provider struct {
async bool
bucket *gocb.Bucket
bucketName string
snapshotInterval int
writer *actor.PID
}
func (provider *Provider) GetState() persistence.ProviderState {
return &cbState{
Provider: provider,
}
}
func New(actorSystem *actor.ActorSystem, bucketName string, baseU string, options ...CouchbaseOption) *Provider {
c, err := gocb.Connect(baseU)
if err != nil {
log.Fatalf("Error connecting: %v", err)
}
bucket, err := c.OpenBucketWithMt(bucketName, "")
if err != nil {
log.Fatalf("Error getting bucket: %v", err)
}
bucket.SetTranscoder(transcoder{})
config := &couchbaseConfig{}
for _, option := range options {
option(config)
}
provider := &Provider{
snapshotInterval: config.snapshotInterval,
async: config.async,
bucket: bucket,
bucketName: bucketName,
}
if config.async {
pid := actorSystem.Root.Spawn(actor.PropsFromFunc(newWriter(time.Second / 10000)))
provider.writer = pid
}
return provider
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。