首页 > 其他分享 >GO 中间件方式执行额外任务

GO 中间件方式执行额外任务

时间:2024-05-14 10:09:04浏览次数:24  
标签:额外 mylog err fmt 中间件 Println mv GO Middleware

package main

import (
	"database/sql"
	"fmt"
	"mylog"
	"time"
)

type Middleware struct{}

/*如遇错误,执行额外任务*/
func (m *Middleware) Println(v interface{}) {
	if err, ok := v.(error); ok {
		mylog.Println("执行额外任务:", err)
	}
	mylog.Println("正常执行原本任务:", v)
}

var dblink *sql.DB /*自行补充初始化过程*/

/*如遇错误,执行额外任务*/
func (m *Middleware) Println_sendln(v ...interface{}) {

	for _, arg := range v {
		if err, ok := arg.(error); ok {
			mylog.Println("错误信息:", err)
			err_msg := `警告消息:` + err.Error() //错误信息里可能有单引号
			dingdingmsg := `exec dingding_add_msg ?,0,'xxk'`
			//	mylog.Println("sql:", dingdingmsg)
			dblink.Exec(dingdingmsg, err_msg)
		}
	}

	mylog.Println(v...)
}

func main() {

	if err := DBinit_sqlserver2(); err != nil {
		mylog.Println(err)
		fmt.Println(err)
		time.Sleep(5 * time.Minute)
		return
	} else {
		fmt.Println(`链接sqlserver2成功`)
	}

	mv := &Middleware{}

	mv.Println(11)
	mv.Println(22)
	mv.Println(fmt.Errorf("自定义错误"))
	mv.Println_sendln(fmt.Errorf("测试自定义错误"), `121`)
}

 

  

标签:额外,mylog,err,fmt,中间件,Println,mv,GO,Middleware
From: https://www.cnblogs.com/agfox123/p/18190690

相关文章

  • mongodb数据库:手动释放磁盘空间
    平台:阿里云mongoDB云数据库版本:Mongodb4.2数据库集群方案:一主二从三分片需求:手动释放过剩磁盘空间从文档解析可知:delete数据或者做分片数据迁移,并不会释放磁盘空间,而是将这些空间标记为reuse可重用状态,后续新写入的数据会重用这部分空间。需求是手动释放这些空间,使用compact......
  • 【django学习-22】列表界面搜索功能
    1.需求:靓号列表界面,根据手机号码模糊匹配2.前端传search_data<divstyle="float:right;width:300px;"><formmethod="get"><divclass="input-group"><inputtype="text"name="q"clas......
  • 【django学习-21】ModelForm方式,自定义数据校验
    前言:我们在使用ModelForm新增数据时,除了使用默认的数据校验之外,还可以自定义数据校验例如:有个靓号的列表,新增/编辑校验1.代码示例1.1:modles.pyclassPrettyNum(models.Model):"""靓号表"""mobile=models.CharField(verbose_name="手机号",max_length=11)......
  • Golang初学:time包,Ticker,Timer
    goversiongo1.22.1windows/amd64Windows11+amd64x86_64x86_64GNU/Linux--- 序章packagetimehttps://pkg.go.dev/timePackagetimeprovidesfunctionalityformeasuringanddisplayingtime.测量、显示时间。 本文展示Ticker、Timer的基本使用。 ......
  • 【django学习-20】新增用户(ModelForm方式)
    1.什么是ModelForm?ModelForm顾名思义就Form和Django的Model数据库模型结合体,可以简单、方便得对数据库进行增加、编辑操作和验证标签的生成;比如我们的数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生的页面,你的后台应......
  • 【django学习-19】基本流程与用户管理界面(原始方式)
    1.安装及创建项目1.1:安装django,pipinstalldjango1.2:创建项目:django-adminstartproject项目名称1.3:创建app:pythonmanage.pystartappapp名称1.4:使用pychram创建项目:1.4.1:注意点,pycharm在标准的基础上默认给咱们加了点东西1.4.2:创建了一个templates目录【删除】1.......
  • Go:json-patch库讲解与应用
    Go:json-patch库讲解与应用原创 王义杰 运维开发王义杰 2024-05-1321:36 广东 听全文1.简介json-patch 是一个Go语言的库,用于处理JSON文档的修改。它实现了JSONPatch标准(RFC6902),允许对JSON文档进行部分更新,而无需重写整个文档。2.功能与特性操......
  • Django 安全性与防御性编程:如何保护 Django Web 应用
    title:Django安全性与防御性编程:如何保护DjangoWeb应用date:2024/5/1320:26:58updated:2024/5/1320:26:58categories:后端开发tags:CSRFXSSSQLUploadHTTPOnlyPasswordSession跨站请求伪造(CSRF)跨站请求伪造(CSRF)是一种常见的网络攻击,它利用用户的身份......
  • golang进程通过共享内存和C++进程进行通信
    目录serverclientserverC++可以使用POSIX共享内存API来创建和管理共享内存server.cpp#include<fcntl.h>#include<sys/mman.h>#include<sys/stat.h>#include<unistd.h>#include<cstring>#include<iostream>constchar*S......
  • Go语言:切片的使用及注意事项
    1、切片定义后实际上是空值不能直接使用,需要让其引用到一个数组或者make一个空间供切片来使用;2、切片的使用不可以越界,像数组一样,切片的下标索引不能超过切片实际的最大下标值;packagemainimport"fmt"funcmain(){  //定义一个数组  varintarr[6]int=[6]int{......