- build version, git info added.

This commit is contained in:
gazebo
2018-07-29 20:43:25 +08:00
parent 58e91a8f5c
commit 5c4d34554f
3 changed files with 123 additions and 64 deletions

1
VERSION Normal file
View File

@@ -0,0 +1 @@
0.0.1

View File

@@ -81,55 +81,57 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica
func LoadPendingOrders() {
orders := OrderManager.LoadPendingOrders()
globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders))
bills := WaybillManager.LoadPendingWaybills()
globals.SugarLogger.Infof("LoadPendingOrders waybills count:%d", len(bills))
var sortOrders StatusTimerSlice
for _, order := range orders {
if order.Status > model.OrderStatusNew {
status := model.Order2Status(order)
sortOrders = append(sortOrders, status)
ordersCount := len(orders)
if ordersCount > 0 {
bills := WaybillManager.LoadPendingWaybills()
globals.SugarLogger.Infof("LoadPendingOrders waybills count:%d", len(bills))
var sortOrders StatusTimerSlice
for _, order := range orders {
if order.Status > model.OrderStatusNew {
status := model.Order2Status(order)
sortOrders = append(sortOrders, status)
}
// order.Status = model.OrderStatusNew // 就是要以实际order状态来调用scheduler.OnOrderNew
order.StatusTime = order.OrderCreatedAt
sortOrders = append(sortOrders, order)
}
// order.Status = model.OrderStatusNew // 就是要以实际order状态来调用scheduler.OnOrderNew
order.StatusTime = order.OrderCreatedAt
sortOrders = append(sortOrders, order)
}
for _, bill := range bills {
if bill.Status > model.WaybillStatusNew {
bill2 := *bill
sortOrders = append(sortOrders, &bill2)
for _, bill := range bills {
if bill.Status > model.WaybillStatusNew {
bill2 := *bill
sortOrders = append(sortOrders, &bill2)
}
bill.Status = model.WaybillStatusNew
bill.StatusTime = bill.WaybillCreatedAt
sortOrders = append(sortOrders, bill)
}
bill.Status = model.WaybillStatusNew
bill.StatusTime = bill.WaybillCreatedAt
sortOrders = append(sortOrders, bill)
}
sort.Sort(sortOrders)
sleepGap := maxTimeHandlePendingOrder / time.Duration(len(sortOrders))
if sleepGap > maxSleepGapHandlePendingOrder {
sleepGap = maxSleepGapHandlePendingOrder
}
lastTime := time.Now()
for _, item := range sortOrders {
if order, ok := item.(*model.GoodsOrder); ok {
jxutils.CallMsgHandlerAsync(func() {
scheduler.CurrentScheduler.OnOrderNew(order, true)
}, order.VendorOrderID)
} else if status, ok := item.(*model.OrderStatus); ok {
jxutils.CallMsgHandlerAsync(func() {
scheduler.CurrentScheduler.OnOrderStatusChanged(status, true)
}, status.VendorOrderID)
} else {
bill := item.(*model.Waybill)
jxutils.CallMsgHandlerAsync(func() {
scheduler.CurrentScheduler.OnWaybillStatusChanged(bill, true)
}, bill.VendorOrderID)
sort.Sort(sortOrders)
sleepGap := maxTimeHandlePendingOrder / time.Duration(ordersCount)
if sleepGap > maxSleepGapHandlePendingOrder {
sleepGap = maxSleepGapHandlePendingOrder
}
curTime := time.Now()
timeout := sleepGap - curTime.Sub(lastTime)
if timeout > 0 {
time.Sleep(timeout)
lastTime := time.Now()
for _, item := range sortOrders {
if order, ok := item.(*model.GoodsOrder); ok {
jxutils.CallMsgHandlerAsync(func() {
scheduler.CurrentScheduler.OnOrderNew(order, true)
}, order.VendorOrderID)
} else if status, ok := item.(*model.OrderStatus); ok {
jxutils.CallMsgHandlerAsync(func() {
scheduler.CurrentScheduler.OnOrderStatusChanged(status, true)
}, status.VendorOrderID)
} else {
bill := item.(*model.Waybill)
jxutils.CallMsgHandlerAsync(func() {
scheduler.CurrentScheduler.OnWaybillStatusChanged(bill, true)
}, bill.VendorOrderID)
}
curTime := time.Now()
timeout := sleepGap - curTime.Sub(lastTime)
if timeout > 0 {
time.Sleep(timeout)
}
lastTime = curTime
}
lastTime = curTime
}
}

94
main.go
View File

@@ -1,6 +1,10 @@
package main
import (
"flag"
"fmt"
"os"
bzcon "git.rosy.net.cn/jx-callback/business/controller"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
@@ -11,31 +15,83 @@ import (
"github.com/astaxie/beego"
)
var (
GitCommit string
GitBranch string
GitState string
GitSummary string
BuildDate string
Version string
)
func init() {
// globals.Init()
db.Init()
api.Init()
}
func main() {
if beego.BConfig.RunMode == "prod" {
if err := tasks.RefreshWeixinToken(); err != nil {
globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err)
return
}
if err := tasks.RefreshElmToken(); err != nil {
globals.SugarLogger.Errorf("RefreshElmToken failed with error:%s", err)
return
}
if globals.CallLegacyMsgHandler {
controller.InitOrder()
}
}
bzcon.LoadPendingOrders()
// 返回true表示非运行服务
func checkCmdFlags() bool {
var flagGitCommit bool
var flagGitBranch bool
var flagGitState bool
var flagGitSummary bool
var flagBuildDate bool
var flagVersion bool
var flagFullInfo bool
if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
flag.BoolVar(&flagGitCommit, "gitcommit", false, "get gitcommit info")
flag.BoolVar(&flagGitBranch, "gitbranch", false, "get gitbranch info")
flag.BoolVar(&flagGitState, "gitstate", false, "get gitstate info")
flag.BoolVar(&flagGitSummary, "gitsummary", false, "get gitsummary info")
flag.BoolVar(&flagBuildDate, "builddate", false, "get builddate info")
flag.BoolVar(&flagVersion, "version", false, "get version info")
flag.BoolVar(&flagFullInfo, "fullinfo", false, "get fullinfo info")
flag.Parse()
if flagGitCommit || flagFullInfo {
fmt.Println(GitCommit)
}
if flagGitBranch || flagFullInfo {
fmt.Println(GitBranch)
}
if flagGitState || flagFullInfo {
fmt.Println(GitState)
}
if flagGitSummary || flagFullInfo {
fmt.Println(GitSummary)
}
if flagBuildDate || flagFullInfo {
fmt.Println(BuildDate)
}
if flagVersion || flagFullInfo {
fmt.Println(Version)
}
return len(os.Args) > 1
}
func main() {
if !checkCmdFlags() {
if beego.BConfig.RunMode == "prod" {
if err := tasks.RefreshWeixinToken(); err != nil {
globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err)
return
}
if err := tasks.RefreshElmToken(); err != nil {
globals.SugarLogger.Errorf("RefreshElmToken failed with error:%s", err)
return
}
if globals.CallLegacyMsgHandler {
controller.InitOrder()
}
}
bzcon.LoadPendingOrders()
if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
}
beego.Run()
}
beego.Run()
}