intf

package
v2.0.21 Latest Latest
Warning

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

Go to latest
Published: Jul 3, 2024 License: MPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Capability

type Capability struct {
	Category ProviderCategory
	Name     ProviderName
	Module   fx.Option
}

Capability 能力提供者

type ConfigProvider

type ConfigProvider interface {
	Unmarshal(configVar any, key ...string) error
}

type DbBuilderClient

type DbBuilderClient interface {
	ToSql() (string, []any, error)
	XGet(v any) error
	XSelect(v any, args ...*protobuf.ListParam) error
	XCount() (int64, error)
	XQuery(args ...*protobuf.ListParam) (*sqlx.Rows, error)
}

type DbBuilderProvider

type DbBuilderProvider interface {
	Provider
	My() DbBuilderClient
	Master() DbBuilderClient
	Slave(i int) DbBuilderClient
	By(name string) DbBuilderClient
	Set(sqlizer Sqlizer)
}

type DbClient

type DbClient interface {
	Exec(query string, args ...interface{}) (sql.Result, error)
	Query(query string, args ...interface{}) (*sql.Rows, error)
	QueryRow(query string, args ...interface{}) *sql.Row
	Get(dest interface{}, query string, args ...interface{}) error
	Select(dest interface{}, query string, args ...interface{}) error
	Rebind(query string) string
	Close() error
}

type DbProvider

type DbProvider interface {
	Provider
	My() DbClient
	Master() DbClient
	Slave(i int) DbClient
	By(name string) DbClient
}

type LoggerProvider

type LoggerProvider interface {
	Provider
	GetStdLogger() *log.Logger
	Log(keyvals ...interface{}) error
	Trace(msg string, keyvals ...interface{})
	Debug(msg string, keyvals ...interface{})
	Info(msg string, keyvals ...interface{})
	Warn(msg string, keyvals ...interface{})
	Error(msg string, keyvals ...interface{})
	Fatal(msg string, keyvals ...interface{})
	Panic(msg string, keyvals ...interface{})
}

type MessageQueueProvider

type MessageQueueProvider interface {
	Provider
	NewPublisher(name string, args ...*mq.PublisherOption) (MessageQueuePublisher, error)
	NewSubscriber(name string, args ...*mq.SubscriberOption) (MessageQueueSubscriber, error)
}

MessageQueueProvider 相同name的多个订阅者如果订阅同一个topic,则只有一个订阅者会收到消息 不同name的多个订阅者果订阅同一个topic,则所有订阅者都会收到消息

type MessageQueuePublisher

type MessageQueuePublisher interface {
	// Publish publishes provided messages to given topic.
	//
	// Publish can be synchronous or asynchronous - it depends on the implementation.
	//
	// Most publishers implementations don't support atomic publishing of messages.
	// This means that if publishing one of the messages fails, the next messages will not be published.
	//
	// Publish must be thread safe.
	Publish(topic string, messages [][]byte, delaySeconds ...int64) error
	// Close should flush unsent messages, if publisher is async.
	Close() error
}

type MessageQueueSubscriber

type MessageQueueSubscriber interface {
	// Subscribe returns output channel with messages from provided topic.
	// Channel is closed, when Close() was called on the subscriber.
	//
	// To receive the next message, `Ack()` must be called on the received message.
	// If message processing failed and message should be redelivered `Nack()` should be called.
	//
	// When provided ctx is cancelled, subscriber will close subscribe and close output channel.
	// Provided ctx is set to all produced messages.
	// When Nack or Ack is called on the message, context of the message is canceled.
	Subscribe(ctx context.Context, topic string) (<-chan *mq.Message, error)
	// Close closes all subscriptions with their output channels and flush offsets etc. when needed.
	Close() error
}

type Provider

type Provider interface {
	Init(args ...any) error // 初始化
}

Provider 底层库能力提供者接口

type ProviderCategory

type ProviderCategory int
const (
	ProviderCategoryUnknown ProviderCategory = iota
	ProviderCategoryConfig
	ProviderCategoryLogger
	ProviderCategoryDb
	ProviderCategoryRedis
	ProviderCategoryMq
	ProviderCategoryDbSqlx
	ProviderCategoryDbBuilder
)

type ProviderName

type ProviderName string
const (
	ProviderNameConfigViper       ProviderName = "config-viper"
	ProviderNameLoggerZerolog     ProviderName = "logger-zerolog"
	ProviderNameRedisRedigo       ProviderName = "redis-redigo"
	ProviderNameDbSqlBoilerMysql  ProviderName = "db-sqlboiler-mysql"
	ProviderNameDbSqlBoilerSqlite ProviderName = "db-sqlboiler-sqlite3"
	ProviderNameDbSqlxMysql       ProviderName = "db-sqlx-mysql"
	ProviderNameDbSquirrelMysql   ProviderName = "db-squirrel-mysql"
	ProviderNameMqRabbitMq        ProviderName = "mq-rabbitmq"
)

type RedisClient

type RedisClient interface {
	// general purpose
	Del(key string) error
	Dels(keys []string) error
	Exists(key string) (bool, error)
	Expire(key string, expire int) error
	Incr(key string) error
	IncrBy(key string, number int) error
	DecrBy(key string, number int) error
	Ttl(key string) (int64, error)
	Pipeline(commands []*RedisCommand) (reply interface{}, err error)
	Ping() error

	// Set operations
	Set(key string, value interface{}) error
	SetEx(key string, value interface{}, expire int) error

	// Get operations
	Get(key string) ([]byte, error)
	GetInt(key string) (int, error)
	GetInt64(key string) (int64, error)
	GetFloat64(key string) (float64, error)
	GetString(key string) (string, error)

	// HashMap operations
	HGetAll(key string) (map[string]string, error)
	HGet(key string, field string) ([]byte, error)
	HGetInt(key string, field string) (int, error)
	HGetInt64(key string, field string) (int64, error)
	HGetFloat64(key string, field string) (float64, error)
	HGetString(key string, field string) (string, error)
	HMGet(key string, fields []string) ([][]byte, error)
	HSet(key string, field interface{}, value interface{}) (int, error)
	HMSet(key string, args map[string]interface{}) error
	HDel(key string, field interface{}) (int, error)
	HDels(key string, fields []interface{}) (int, error)
	HLen(key string) (int, error)

	// set
	SIsMember(key string, member interface{}) (bool, error)
	SAdd(key string, members interface{}) error
	SRem(key string, members interface{}) error
	SInter(keys []string) ([]string, error)
	SUnion(keys []string) ([]string, error)
	SDiff(keys []string) ([]string, error)
	SMembers(key string) ([]string, error)

	// zset
	ZAdd(key string, score int64, member interface{}) error
	ZCard(key string) (int, error)
	ZRange(key string, min, max int64) ([]string, error)
	ZRemRangeByScore(key string, min, max interface{}) error
	ZRangeByScore(key string, min, max interface{}, withScores bool, list *protobuf.ListParam) ([]string, error)
	ZScore(key string, member interface{}) (int64, error)
	ZInterstore(newKey string, keys ...interface{}) (int64, error)
	ZIncrBy(key string, increment int64, member interface{}) error
	ZRem(destKey string, members ...interface{}) (int64, error)

	// list
	LPush(key string, values ...any) error
	RPush(key string, values ...any) error
	RPop(key string) ([]byte, error)
	LRangeInt64(key string, start, end int64) ([]int64, error)
	LRangeString(key string, start, end int64) ([]string, error)
	LLen(key string) (int64, error)
	Eval(scriptContent string, keys []interface{}, args []interface{}) (interface{}, error)

	// redis bloom
	BfExists(key string, item string) (exists bool, err error)
	BfAdd(key string, item string) (exists bool, err error)
	BfReserve(key string, errorRate float64, capacity uint64) (err error)
	BfAddMulti(key string, items []interface{}) ([]int64, error)
	BfExistsMulti(key string, items []interface{}) ([]int64, error)
}

type RedisCommand

type RedisCommand struct {
	Name string
	Args []interface{}
}

type RedisProvider

type RedisProvider interface {
	Provider
	My() RedisClient
	By(string) RedisClient
}

type Sqlizer

type Sqlizer interface {
	ToSql() (string, []interface{}, error)
}

type SqlxDbClient

type SqlxDbClient interface {
	DbClient
	NamedExec(query string, arg interface{}) (sql.Result, error)
	Queryx(query string, args ...interface{}) (*sqlx.Rows, error)
	Beginx() (*sqlx.Tx, error)
	Db() *sqlx.DB
}

type SqlxDbProvider

type SqlxDbProvider interface {
	Provider
	My() SqlxDbClient
	Master() SqlxDbClient
	Slave(i int) SqlxDbClient
	By(name string) SqlxDbClient
}

Jump to

Keyboard shortcuts

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