sync

package
v0.0.5-beta Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SYNC_PREFIX     = "SYNC"
	TOPIC_CRUD      = "CRUD"
	TOPIC_INIT_NEED = "INIT_NEED"
	TOPIC_INIT_FEED = "INIT_FEED"
	CRUD_C          = "C"
	CRUD_R          = "R" //用不上,暂时预留吧
	CRUD_U          = "U"
	CRUD_D          = "D"
)

Variables

This section is empty.

Functions

func InitNeedFeedSub

func InitNeedFeedSub()

func InitSub

func InitSub()

创建监听 这个过程应该在init方法内完成, 并且在

func ListenToEvents

func ListenToEvents()

func PubInitNeed

func PubInitNeed()

PubInitNeed - 发布一个初始化的请求 主动通知初始化,订阅方主动索要初始化数据的行为。 使用场景如下: 当某个服务初始化时,需要初次拉取数据(或者因为某些原因需要重新拉取)时 订阅方主动发布PubInitNeed,告知发布方,我需要初始化数据,给爹送过来 发布方在SubInitNeed监听到这个事件,通过FeedNeeds(这里需要根据自己 的场景)自行实现,在FeedNeeds中,发布方应该调用FeedToInitEvent,把全部 需要传递的数据逐条发布过去,订阅方在SubInitFeed,会收到“数据来了,接 好了,孙贼!”,大量数据的涌来有可能让孙子崩溃,所以要么发布方做好数据分 批发送,要么订阅方自己做好分批缓冲操作。 事件流程如下: 1.发布方监听,执行SubInitNeed 2.订阅方监听,执行SubInitFeed 3.订阅方发起,执行PubInitNeed 4.发布方在SubInitNeed的回调中执行FeedToInitEvent 5.订阅方在SubInitFeed的回调中执行数据同步

func Publish

func Publish()

主动发布

func RegCreateEvent

func RegCreateEvent(eventName string, modelName string)

func RegDeleteEvent

func RegDeleteEvent(eventName string, modelName string)

func RegUpdateEvent

func RegUpdateEvent(eventName string, modelName string)

func SubInitNeed

func SubInitNeed()

Types

type InitFeed

type InitFeed struct {
	Need *InitNeed
	Data *ModelData
}

type InitNeed

type InitNeed struct {
	SubName   string
	ModelName string
}

type MessageHandler

type MessageHandler struct {
	Handler func(content []byte) error
}

func (*MessageHandler) HandleMessage

func (h *MessageHandler) HandleMessage(m *nsq.Message) error

type ModelData

type ModelData struct {
	PubName   string
	ModelName string
	Id        int
	Crud      string //增删改查的类型
	Data      []byte
}

func (*ModelData) FillModel

func (this *ModelData) FillModel(model interface{}) error

func (*ModelData) Set

func (this *ModelData) Set(data []byte) *ModelData

func (*ModelData) SetAndJson

func (this *ModelData) SetAndJson(data interface{}) *ModelData

func (*ModelData) SetString

func (this *ModelData) SetString(data string) *ModelData

type ModelSync

type ModelSync struct {
	ServiceName string
	NsqPubAddr  string
	NsqSubAddr  string
	// contains filtered or unexported fields
}
var MS *ModelSync

func GetMS

func GetMS() *ModelSync

func NewModelSync

func NewModelSync() *ModelSync

func (*ModelSync) FeedToInitEvent

func (ms *ModelSync) FeedToInitEvent(in *InitNeed, model interface{}) (err error)

func (*ModelSync) GetIdFromInterface

func (ms *ModelSync) GetIdFromInterface(v interface{}) (id int)

func (*ModelSync) InitProducer

func (ms *ModelSync) InitProducer()

func (*ModelSync) ListenToInitNeed

func (ms *ModelSync) ListenToInitNeed(modelName string, handler func(*InitNeed))

func (*ModelSync) Pub

func (ms *ModelSync) Pub(conf *PubConfig) (err error)

func (*ModelSync) PubCrud

func (ms *ModelSync) PubCrud(modelName string, crud string, v interface{}) (err error)

func (*ModelSync) PubCrudCreate

func (ms *ModelSync) PubCrudCreate(modelName string, v interface{}) (err error)

func (*ModelSync) PubCrudDelete

func (ms *ModelSync) PubCrudDelete(modelName string, v interface{}) (err error)

func (*ModelSync) PubCrudUpdate

func (ms *ModelSync) PubCrudUpdate(modelName string, v interface{}) (err error)

func (*ModelSync) PubInitNeed

func (ms *ModelSync) PubInitNeed(pubName string, model string) (err error)

func (*ModelSync) Sub

func (ms *ModelSync) Sub(conf *SubConfig) (err error)

func (*ModelSync) SubCrud

func (ms *ModelSync) SubCrud(pubName string, modelName string, usage string, handler func(data *ModelData) error) (err error)

func (*ModelSync) SubInitFeed

func (ms *ModelSync) SubInitFeed(pubName string, usage string, handle func(data *ModelData) error) (err error)

func (*ModelSync) SubInitNeed

func (ms *ModelSync) SubInitNeed(handle func(in *InitNeed) error) (err error)

type PubConfig

type PubConfig struct {
	Topic string
	Data  []byte
}

func NewPubConfig

func NewPubConfig(topic string) *PubConfig

func (*PubConfig) Set

func (pc *PubConfig) Set(data []byte) *PubConfig

func (*PubConfig) SetAndJson

func (pc *PubConfig) SetAndJson(data interface{}) *PubConfig

func (*PubConfig) SetString

func (pc *PubConfig) SetString(data string) *PubConfig

type SubConfig

type SubConfig struct {
	Topic   string
	Channel string
	Handler func(data []byte) error
}

func NewSubConfig

func NewSubConfig(topic string, ch string) *SubConfig

Jump to

Keyboard shortcuts

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