Documentation ¶
Index ¶
- Constants
- func InitNeedFeedSub()
- func InitSub()
- func ListenToEvents()
- func PubInitNeed()
- func Publish()
- func RegCreateEvent(eventName string, modelName string)
- func RegDeleteEvent(eventName string, modelName string)
- func RegUpdateEvent(eventName string, modelName string)
- func SubInitNeed()
- type InitFeed
- type InitNeed
- type MessageHandler
- type ModelData
- type ModelSync
- func (ms *ModelSync) FeedToInitEvent(in *InitNeed, model interface{}) (err error)
- func (ms *ModelSync) GetIdFromInterface(v interface{}) (id int)
- func (ms *ModelSync) InitProducer()
- func (ms *ModelSync) ListenToInitNeed(modelName string, handler func(*InitNeed))
- func (ms *ModelSync) Pub(conf *PubConfig) (err error)
- func (ms *ModelSync) PubCrud(modelName string, crud string, v interface{}) (err error)
- func (ms *ModelSync) PubCrudCreate(modelName string, v interface{}) (err error)
- func (ms *ModelSync) PubCrudDelete(modelName string, v interface{}) (err error)
- func (ms *ModelSync) PubCrudUpdate(modelName string, v interface{}) (err error)
- func (ms *ModelSync) PubInitNeed(pubName string, model string) (err error)
- func (ms *ModelSync) Sub(conf *SubConfig) (err error)
- func (ms *ModelSync) SubCrud(pubName string, modelName string, usage string, ...) (err error)
- func (ms *ModelSync) SubInitFeed(pubName string, usage string, handle func(data *ModelData) error) (err error)
- func (ms *ModelSync) SubInitNeed(handle func(in *InitNeed) error) (err error)
- type PubConfig
- type SubConfig
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 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 RegCreateEvent ¶
func RegDeleteEvent ¶
func RegUpdateEvent ¶
func SubInitNeed ¶
func SubInitNeed()
Types ¶
type MessageHandler ¶
func (*MessageHandler) HandleMessage ¶
func (h *MessageHandler) HandleMessage(m *nsq.Message) error
type ModelData ¶
func (*ModelData) SetAndJson ¶
type ModelSync ¶
type ModelSync struct { ServiceName string NsqPubAddr string NsqSubAddr string // contains filtered or unexported fields }
var MS *ModelSync
func NewModelSync ¶
func NewModelSync() *ModelSync
func (*ModelSync) FeedToInitEvent ¶
func (*ModelSync) GetIdFromInterface ¶
func (*ModelSync) InitProducer ¶
func (ms *ModelSync) InitProducer()
func (*ModelSync) ListenToInitNeed ¶
func (*ModelSync) PubCrudCreate ¶
func (*ModelSync) PubCrudDelete ¶
func (*ModelSync) PubCrudUpdate ¶
func (*ModelSync) PubInitNeed ¶
func (*ModelSync) SubInitFeed ¶
Click to show internal directories.
Click to hide internal directories.