当前位置: 首页 > news >正文

电脑广告设计软件seo管理与优化期末试题

电脑广告设计软件,seo管理与优化期末试题,如何设计出一个好网站,企业网站建设经验分享背景#xff1a; 公司目前有个业务#xff0c;收到数据后#xff0c;要分发给所有的客户端或者是业务模块#xff0c;类似消息通知这样的需求#xff0c;自然而然就想到了事件#xff0c;观察者比较简单就自己实现以下#xff0c;确保最小功能使用支持即可#xff0c;其…背景 公司目前有个业务收到数据后要分发给所有的客户端或者是业务模块类似消息通知这样的需求自然而然就想到了事件观察者比较简单就自己实现以下确保最小功能使用支持即可其他的后期进行支持就行。 创建事件结构体用来发送事件信息 // Event // Description: 事件信息作用发生的动作或事情的描述 type Event struct {//默认false进行同步处理true异步处理AsyncHandle bool//事件名称EventName string//目标数据Data any } 创建事件监听者 // EventListener 定义监听器事件监听器是一个函数它接收事件并对其作出响应 type EventListener func(*Event) 创建分发器这快也可以不用这些可以写到分发管理器里也是可以的我这边主要是为了后期方便扩展使用的 // dispatcher // Description: 事件分发器 type dispatcher struct {//存储事件监听器通过名称进行分组listeners map[string][]EventListener }// NewDispatcher // // Author zhaosy // Description: 新建分发器不允许对外开放 // date 2024-08-07 17:12:36 func newDispatcher() *dispatcher {return dispatcher{listeners: make(map[string][]EventListener),} } 创建分发管理以及相关业务 // 定义全局分发管理器 var eventDispatcherManagerObj eventDispatcherManager{dispatcher: newDispatcher(),RegisterChannel: make(chan *eventListenerInfo),//容量给1000后续可以根据情况进行设置大小即可EventChannel: make(chan *Event, 1000), }func init() {//异步进行启动go eventDispatcherManagerObj.Start() }// eventListenerInfo // Description: 监听者封装供内部使用 type eventListenerInfo struct {EventName stringEventListener }// eventDispatcherManager // Description: 事件分发处理器供内部使用 type eventDispatcherManager struct {*dispatcherRegisterChannel chan *eventListenerInfoEventChannel chan *Event }// Start // // Author zhaosy // Description: 开始启动分发处理器 // date 2024-08-08 09:32:58 func (e *eventDispatcherManager) Start() {for {select {//发送事件case event : -e.EventChannel:{//这里可以进行扩展例如取消某个事件针对某个监听者分发fmt.Println(监听事件, event.EventName)//这里匹配是通过精确匹配后期如果需要进行模糊匹配可以进行支持即可例如前缀后缀这类的进行扩展即可for _, listener : range e.listeners[event.EventName] {if event.AsyncHandle {//如果采用异步发布事件事件顺序无法保证也就是乱序这里可以根据实际标志是否进行异步分发go listener(event) //通过协程进行处理} else {//默认采用同步方式进行分发事件listener(event)}}}//注册事件case register : -e.RegisterChannel:{fmt.Println(注册事件, register.EventName)//进行注册e.dispatcher.listeners[register.EventName] append(e.dispatcher.listeners[register.EventName], register.EventListener)fmt.Printf(注册事件结果%#v, e.dispatcher.listeners)}//可以扩展取消事件}}}监听者注册器通过包名直接注册 // RegisterListener // // Author zhaosy // Description: 注册事件 // date 2024-08-08 09:05:10 func RegisterListener(eventName string, listener EventListener) error {if eventName {return fmt.Errorf(event name is empty)}if listener nil {return fmt.Errorf(listener is nil)}e : eventListenerInfo{EventName: eventName,EventListener: listener,}//发送到注册链eventDispatcherManagerObj.RegisterChannel - ereturn nil } 发送监听 // Send // // Author zhaosy // Description: 发生事件 // date 2024-08-08 09:05:29 func Send(event *Event) error {if event nil {return fmt.Errorf(event is nil)}if event.EventName {return fmt.Errorf(event name is empty)}eventDispatcherManagerObj.EventChannel - eventreturn nil } 测试 func TestEvent(t *testing.T) {eventName : testevents.RegisterListener(eventName, func(event *events.Event) {//这里建议使用goroutine进行异步处理业务这样不会拖慢事件分发器分发效率// go dosomething(event)fmt.Println(第一个监听器, event.EventName, event.Data)})events.RegisterListener(eventName, func(event *events.Event) {fmt.Println(第二个监听器, event.EventName, event.Data)})//模拟发送事件消息for i : 0; i 10; i {//走同步if i 6 {events.Send(events.Event{EventName: eventName,Data: i,})} else {//走异步events.Send(events.Event{AsyncHandle: true,EventName: eventName,Data: i,})}}time.Sleep(5 * time.Second) } 结果
http://www.hkea.cn/news/14542922/

相关文章:

  • 室内装修设计费收费标准seo优化推广多少钱
  • 设计的好网站wordpress 多说样式
  • 建设一个网站需要什么技术指标wordpress the7 汉化
  • 网站开发主要都做些什么电商数据
  • 舞钢做网站网站下拉菜单怎么做
  • 自学网站建设要看什么书用网站做的简历
  • 黄冈网站设计推广哪家好温州服务网站建设
  • 仿58同城分类信息网站源码网页设计怎么写
  • 深圳教育科技网站建设学做网站开发吗
  • 网站建设和维护合同书电商推广工作内容
  • 深圳网络公司网站深圳个人债务优化
  • 重庆南川网站制作公司哪家专业网站建设的栏目内容
  • 黑龙江做网站的公司有哪些wordpress二维码插件付费
  • 广西网站运营最好的公司网页制作免费版
  • 网站首页制作浩森宇特自贡建设网站
  • 营销型网站有哪些平台张北县网站建设
  • 在阿里云做的网站怎么进后台母婴用品网站建设规划
  • 华为公司网站建设方案厦门 网站建设 网站开发
  • 微网站的建设模板有哪些个人网站免费注册
  • WordPress博客整站带数据东莞企业网站排名优化
  • 交通建设监理协会网站物流企业网站建设规划书
  • 做实体识别的网站企业网站源码wap
  • 做网站建设有前景吗免费咨询病情
  • 天津微网站建设百度导航如何设置公司地址
  • 青岛网站推广怎么选店面设计图纸
  • 成都网站建设scdzks浅谈网站建设的目的和意义
  • 图书销售网站网页设计模板安徽城乡建设厅网站焊工证查询
  • 深圳市建设行业主管部门官方网站跨境电商seo什么意思
  • 西安网站建设资讯网页设计有限公司
  • seo大神做的网站wordpress获取手机号