1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xiawucha365-sago

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

Sago — это питательное вещество, которое производится вручную. Предлагается набор лёгких и управляемых инструментов для разработки скриптов, которые упрощают разработку параллельных программ.

Функции программного обеспечения:

  • поддержка разделения конфигурационных файлов для тестовой и производственной среды;
  • логирование с выводом ошибок разных уровней, разделением файлов по дням или месяцам, автоматической очисткой файлов и выводом цветов RGB;
  • управление параллельными процессами (статистика тайм-аута, пул сопрограмм).

Установка go mod

Требуется установить пакет mod и после успешной установки настроить переменные окружения:

export GO111MODULE=on
export GOPROXY=https://goproxy.cn

Рекомендуется использовать IDE Goland версии 2019.2 или выше. После установки среда автоматически обнаружит и импортирует зависимости. Go mod — это новая функция в языке программирования Go, старые версии не поддерживают её.

Использование

Импорт фреймворка

go get gitee.com/xiawucha365/sago

Конфигурационный файл dev.toml

=================通用配置======================
app_name = "sago"
app_version = "2.3"
debug = false //debug模式下输出更详细错误信息

==============orm============================
[mysql]
addr = "127.0.0.1:3376"
username = "mfw_dev"
password = ""
charset = "utf8"
dbname = ""
#支持xrom/gorm切换
engine = "xorm"  

[mongodb]
addrs = ["127.0.0.1:3376","127.0.0.2:3376","127.0.0.3:3376"] //支持副本集以及单节点模式
username = ""
password = ""
dbname = ""
replica_set = ""
engine = "mgo"

#redis设置
[redis]
addr = ""
password = ""

#===============log=========================
[log]
#日志目录(绝对目录),默认与可执行文件同目录
log_dir = ""
#文件分割周期 month(按月) day(按天)
split_duration = "month"
#日志文件保存等级 info > warn  > error  默认为info
level = "error"
#保留最近多少天的日志,过期自动清理
max_age = 30

Примечание

Поддерживается конфигурация горячей перезагрузки. Не рекомендуется изменять конфигурацию базы данных во время работы программы.

Печать конфигурации

//配置打印
sago.Gdi.Invoke(func(cf *config.Config) {
    sagoutil.PrintType(cf)
})

Логирование

//日志使用
sago.Gdi.Invoke(func(log *slog.Log) {
    defer log.Sync()
    log.Info("log测试")
    log.Warn("log测试")
    log.Error("log测试")
})

Работа с базой данных

import (
    "fmt"
    "math/rand"
    "time"
    sago "gitee.com/xiawucha365/sago.v2"
    "gitee.com/xiawucha365/sago.v2/core/config"
    slog "gitee.com/xiawucha365/sago.v2/core/log"
    sagoutil "gitee.com/xiawucha365/sago.v2/core/util"
    "gitee.com/xiawucha365/sago.v2/core/orm"
    "gopkg.in/mgo.v2/bson"
)

func main(){
        //mysql=============================================================================================================
        //mysql 框架本身查询语句
        sago.Gdi.Invoke(func(db *orm.Db) {
            var demos []Demo
            _ = db.FindBySql("select * from t_creator_center  limit 2", &demos)
            fmt.Println("xorm 框架查询")
            sagoutil.PrintType(demos)
        })
    
        //mysql xorm引擎 原生查询语句
        sago.Gdi.Invoke(func(db *orm.DbMysql) {
            var demos []Demo
            res, err := db.Engine.Xorm.QueryString("select * from t_creator_center  limit 2")
            if err != nil {
                panic(err)
            } else {
                if res1, err := sagoutil.JsonEncode(res); err != nil {
                    panic(err)
                } else {
                    _ = sagoutil.JsonDecode(res1, &demos)
                }
            }
            fmt.Println("xorm 原生查询")
            sagoutil.PrintType(demos)
        })
    
        //mysql gorm引擎 原生查询语句 需要修改配置文件mysql-engine为gorm
    
        //sago.Gdi.Invoke(func(db sago.GDbParams) {
        //
        //  var demos []Demo
        //  res := db.Mysql.Engine.Gorm.Raw("select * from t_creator_center  limit 2").Find(&demos)
        //  if res.Error != nil {
        //      panic(res.Error)
        //  } else {
        //      fmt.Println("gorm 原生查询")
        //      sagoutil.PrintType(demos)
        //  }
        //})
    
        //指定数据库
        sago.Gdi.Invoke(func(cf *config.Config) {
    
            db := orm.GetMysqlConnByDb(cf, "gorm", "sale_contact")
            var demos []Demo2
            _ = db.FindBySql("select * from t_hm_friend  limit 2", &demos)
            fmt.Println("指定数据库查询")
            sagoutil.PrintType(demos)
    
        })
    
        //使用addr查询
        sago.Gdi.Invoke(func(cf *config.Config) {
    
            db := orm.GetMysqlConnByAddr(cf, "",
                "mfw_dev:2cB509cc0bf@tcp(127.0.0.1:3376)/sale_spider?charset=utf8&parseTime=True&loc=Local")
            var demos []Demo
            _ = db.FindBySql("select * from t_creator_center  limit 2", &demos)
            fmt.Println("指定ddr查询")

В запросе используется язык Go.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xiawucha365-sago.git
git@api.gitlife.ru:oschina-mirror/xiawucha365-sago.git
oschina-mirror
xiawucha365-sago
xiawucha365-sago
master