listener

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2023 License: Apache-2.0 Imports: 0 Imported by: 2

README

listener

listener包:是isc-gobase的事件监听模块

用法

提供api

// 添加事件监听器
listener.AddListener(eventName string, eventListener EventListener)

// 添加分组的事件监听器,分组默认为:GobaseDefault
listener.AddListenerWithGroup(group string, eventName string, eventListener EventListener)

// 发布事件
listener.PublishEvent(event listener.BaseEvent)

快速使用

1. 定义事件

事件要实现接口 listener.BaseEvent 的方法

type Event1 struct {
    Company string
}

func (e1 Event1) Name() string {
    return "event1"
}
import (
    "fmt"
    "github.com/isyscore/isc-gobase/listener"
    "testing"
)

func TestPublish(t *testing.T) {
    listener.AddListener("event1", Event1Lister1)
    listener.AddListener("event1", Event1Lister2)
    listener.AddListener("event1", Event1Lister3)

    listener.PublishEvent(Event1{Company: "公司"})
}

// 事件监听器1
func Event1Lister1(event listener.BaseEvent) {
    ev := event.(Event1)
    fmt.Println("Event1Lister1: " + ev.Company)
}

// 事件监听器2
func Event1Lister2(event listener.BaseEvent) {
    ev := event.(Event1)
    fmt.Println("Event1Lister2: " + ev.Company)
}

// 事件监听器3
func Event1Lister3(event listener.BaseEvent) {
    ev := event.(Event1)
    fmt.Println("Event1Lister3: " + ev.Company)
}

内置监听器

isc-gobase内置了几类事件

  • EventOfServerRunStart: 服务开启运行事件
  • EventOfServerRunFinish: 服务启动完成事件
  • EventOfServerStop: 服务关闭事件
  • EventOfConfigChange: 配置变更事件

常用示例:

func init() {
    // 添加服务器启动完成事件监听
    listener.AddListener(listener.EventOfServerRunFinish, func(event listener.BaseEvent) {
        logger.Info("应用启动完成")
    })
}

func main() {
    server.Get("api/get", GetData)
    server.Run()
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultGroup = "DefaultGroup"
View Source
var EventOfConfigChange = "event_of_config_change"
View Source
var EventOfServerRunFinish = "event_of_server_run_finish"
View Source
var EventOfServerRunStart = "event_of_server_run_start"
View Source
var EventOfServerStop = "event_of_server_stop"

Functions

func AddListener

func AddListener(eventName string, eventListener EventListener)

func AddListenerWithGroup added in v1.4.5

func AddListenerWithGroup(group string, eventName string, eventListener EventListener)

func PublishEvent

func PublishEvent(event BaseEvent)

Types

type BaseEvent

type BaseEvent interface {
	Name() string
	Group() string
}

type ConfigChangeEvent added in v1.1.1

type ConfigChangeEvent struct {
	Key   string
	Value string
}

ConfigChangeEvent 配置变更事件, 对应:event_of_config_change

func (ConfigChangeEvent) Group added in v1.4.5

func (e ConfigChangeEvent) Group() string

func (ConfigChangeEvent) Name added in v1.1.1

func (e ConfigChangeEvent) Name() string

type EventListener

type EventListener func(event BaseEvent)

type ServerRunFinishEvent added in v1.3.0

type ServerRunFinishEvent struct{}

ServerRunFinishEvent 服务完成启动事件, 对应:event_of_server_run_finish

func (ServerRunFinishEvent) Group added in v1.4.5

func (e ServerRunFinishEvent) Group() string

func (ServerRunFinishEvent) Name added in v1.3.0

func (e ServerRunFinishEvent) Name() string

type ServerRunStartEvent added in v1.3.0

type ServerRunStartEvent struct{}

ServerRunStartEvent 服务开始启动事件, 对应:event_of_server_run_start

func (ServerRunStartEvent) Group added in v1.4.5

func (e ServerRunStartEvent) Group() string

func (ServerRunStartEvent) Name added in v1.3.0

func (e ServerRunStartEvent) Name() string

type ServerStopEvent

type ServerStopEvent struct{}

ServerStopEvent 服务关闭事件, 对应:event_of_server_stop

func (ServerStopEvent) Group added in v1.4.5

func (e ServerStopEvent) Group() string

func (ServerStopEvent) Name

func (e ServerStopEvent) Name() string

Jump to

Keyboard shortcuts

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