data

package
v0.0.0-...-8ddde9e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ProviderSet = wire.NewSet(NewData, NewSequence)

ProviderSet is data providers.

Functions

This section is empty.

Types

type Data

type Data struct {
	Redis *redis.Client
	Mongo *mongo.Client
}

Data .

func NewData

func NewData(c *conf.Data, logger log.Logger) (*Data, func(), error)

NewData .

type Message

type Message struct {
	// 插入时,务必设置为0,以使用 mongo的objectId,否则会大幅降低写入性能
	//ObjectId string                 `bson:"_id,omitempty"`
	Id      string                 `bson:"id,omitempty"`      // id,非mongo的对象id
	Seq     int64                  `bson:"seq,omitempty"`     // 连续递增序号
	Message map[string]interface{} `bson:"message,omitempty"` // 数据内容
}

func (Message) String

func (m Message) String() string

type MessageRepo

type MessageRepo interface {
	Store(ctx context.Context, message *Message) (string, error)
	StoreBatch(ctx context.Context, messages []*Message) (failed []*Message, err error)
	Update(ctx context.Context, objId string, message *Message) error
	LoadById(ctx context.Context, objId string) (*Message, error)
	DeleteById(ctx context.Context, objId string) error

	Load(ctx context.Context, id string, seq int64) (*Message, error)
	Scan(ctx context.Context, id string, param ScanParameter) ([]Message, error)
}

func NewMessageRepo

func NewMessageRepo(data *Data, database, collection string, logger log.Logger) MessageRepo

type ScanParameter

type ScanParameter struct {
	From      int64 // 起始序号
	To        int64 // 结束序号
	MaxCount  int   // 一次性取出的最大数量
	IsForward bool  // 是否向前搜索
}

type SequenceCache

type SequenceCache interface {
	Incr(ctx context.Context, key string) (int64, error)
	GetLatest(ctx context.Context, key string) (int64, error)
}

func NewSequence

func NewSequence(data *Data) SequenceCache

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL