emns

package module
v0.0.0-...-5247eb1 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2023 License: MIT Imports: 4 Imported by: 0

README

emns 组件使用指南

简介

mns 主要提供了以下功能:

  • 规范了标准配置格式,提供了统一的 Load().Build() 方法。
  • 支持自定义插件,用户实现接口对接到第三方。
  • 提供了默认的 Parent 插件,并提供一些模板方法。
  • 支持设置定时任务,使用场景为同步第三方信息、检测模板审核状态、消息是否送达成功等。

快速上手

使用样例可参考 examples

Documentation

Index

Constants

View Source
const PackageName = "component.emns"

Variables

This section is empty.

Functions

This section is empty.

Types

type Component

type Component struct {
	// contains filtered or unexported fields
}

Component emns 组件

func (*Component) Crons

func (c *Component) Crons() []ecron.Ecron

Crons 定时任务列表

func (*Component) Name

func (c *Component) Name() string

func (*Component) PackageName

func (c *Component) PackageName() string

func (*Component) PluginStopFuncs

func (c *Component) PluginStopFuncs() []func() error

PluginStopFuncs 获取stop hook

func (*Component) Send

func (c *Component) Send(key string, req *SendRequest) (resp *SendResponse)

func (*Component) Start

func (c *Component) Start() error

func (*Component) Stop

func (c *Component) Stop() error

type Container

type Container struct {
	// contains filtered or unexported fields
}

func DefaultContainer

func DefaultContainer() *Container

DefaultContainer 构造默认容器

func (*Container) Build

func (c *Container) Build(options ...Option) *Component

Build 构建组件

type Option

type Option func(c *Container)

func WithLogger

func WithLogger(logger *elog.Component) Option

WithLogger 设置 log

func WithName

func WithName(name string) Option

WithName 设置name

func WithSenderPlugin

func WithSenderPlugin(plugins ...SenderPlugin) Option

WithSenderPlugin 设置插件

type ParentPlugin

type ParentPlugin struct {
	PluginKey  string // reg key
	PluginName string // Name
	Logger     *elog.Component
}

func (ParentPlugin) Cron

func (p ParentPlugin) Cron() ecron.Ecron

func (*ParentPlugin) GenMsgId

func (p *ParentPlugin) GenMsgId() string

GenMsgId MsgId

func (*ParentPlugin) Key

func (p *ParentPlugin) Key() string

func (*ParentPlugin) Name

func (p *ParentPlugin) Name() string

type SendRequest

type SendRequest struct {
	Receiver       string            // 接收者
	Vars           map[string]string // 参数变量
	ExtraContent   string            // 业务方备注
	ExtraId        string            // 业务方扩展id
	Tpl            interface{}       // 模板对象
	ReceiverDetail interface{}       // 接收者详情
}

SendRequest 对业务 pb 不产生依赖

type SendResponse

type SendResponse struct {
	Code         int32  // code
	ExtraId      string // 业务方扩展id
	MsgId        string // msgId
	Reason       string // 详情
	FinalContent string // 最终发送内容
	PluginType   string // 使用的插件
	Retry        int    // 重试次数
}

SendResponse 对业务 pb 不产生依赖

type SenderPlugin

type SenderPlugin interface {
	Name() string                               // 名称
	Key() string                                // 唯一 key register
	Destroy() error                             // 销毁
	Init() error                                // 初始化
	Send(req *SendRequest) (resp *SendResponse) // send
	Cron() ecron.Ecron                          // 定时任务 没有可返回nil
}

SenderPlugin emns plugins

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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