- build version, git info added.
This commit is contained in:
@@ -81,55 +81,57 @@ func addOrderOrWaybillStatus(status *model.OrderStatus, db orm.Ormer) (isDuplica
|
|||||||
func LoadPendingOrders() {
|
func LoadPendingOrders() {
|
||||||
orders := OrderManager.LoadPendingOrders()
|
orders := OrderManager.LoadPendingOrders()
|
||||||
globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders))
|
globals.SugarLogger.Infof("LoadPendingOrders orders count:%d", len(orders))
|
||||||
bills := WaybillManager.LoadPendingWaybills()
|
|
||||||
globals.SugarLogger.Infof("LoadPendingOrders waybills count:%d", len(bills))
|
|
||||||
|
|
||||||
var sortOrders StatusTimerSlice
|
ordersCount := len(orders)
|
||||||
for _, order := range orders {
|
if ordersCount > 0 {
|
||||||
if order.Status > model.OrderStatusNew {
|
bills := WaybillManager.LoadPendingWaybills()
|
||||||
status := model.Order2Status(order)
|
globals.SugarLogger.Infof("LoadPendingOrders waybills count:%d", len(bills))
|
||||||
sortOrders = append(sortOrders, status)
|
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
|
for _, bill := range bills {
|
||||||
order.StatusTime = order.OrderCreatedAt
|
if bill.Status > model.WaybillStatusNew {
|
||||||
sortOrders = append(sortOrders, order)
|
bill2 := *bill
|
||||||
}
|
sortOrders = append(sortOrders, &bill2)
|
||||||
for _, bill := range bills {
|
}
|
||||||
if bill.Status > model.WaybillStatusNew {
|
bill.Status = model.WaybillStatusNew
|
||||||
bill2 := *bill
|
bill.StatusTime = bill.WaybillCreatedAt
|
||||||
sortOrders = append(sortOrders, &bill2)
|
sortOrders = append(sortOrders, bill)
|
||||||
}
|
}
|
||||||
bill.Status = model.WaybillStatusNew
|
sort.Sort(sortOrders)
|
||||||
bill.StatusTime = bill.WaybillCreatedAt
|
sleepGap := maxTimeHandlePendingOrder / time.Duration(ordersCount)
|
||||||
sortOrders = append(sortOrders, bill)
|
if sleepGap > maxSleepGapHandlePendingOrder {
|
||||||
}
|
sleepGap = maxSleepGapHandlePendingOrder
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
curTime := time.Now()
|
lastTime := time.Now()
|
||||||
timeout := sleepGap - curTime.Sub(lastTime)
|
for _, item := range sortOrders {
|
||||||
if timeout > 0 {
|
if order, ok := item.(*model.GoodsOrder); ok {
|
||||||
time.Sleep(timeout)
|
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
94
main.go
@@ -1,6 +1,10 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
bzcon "git.rosy.net.cn/jx-callback/business/controller"
|
bzcon "git.rosy.net.cn/jx-callback/business/controller"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
"git.rosy.net.cn/jx-callback/globals/api"
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
@@ -11,31 +15,83 @@ import (
|
|||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
GitCommit string
|
||||||
|
GitBranch string
|
||||||
|
GitState string
|
||||||
|
GitSummary string
|
||||||
|
BuildDate string
|
||||||
|
Version string
|
||||||
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
// globals.Init()
|
// globals.Init()
|
||||||
db.Init()
|
db.Init()
|
||||||
api.Init()
|
api.Init()
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
// 返回true表示非运行服务
|
||||||
if beego.BConfig.RunMode == "prod" {
|
func checkCmdFlags() bool {
|
||||||
if err := tasks.RefreshWeixinToken(); err != nil {
|
var flagGitCommit bool
|
||||||
globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err)
|
var flagGitBranch bool
|
||||||
return
|
var flagGitState bool
|
||||||
}
|
var flagGitSummary bool
|
||||||
if err := tasks.RefreshElmToken(); err != nil {
|
var flagBuildDate bool
|
||||||
globals.SugarLogger.Errorf("RefreshElmToken failed with error:%s", err)
|
var flagVersion bool
|
||||||
return
|
var flagFullInfo bool
|
||||||
}
|
|
||||||
if globals.CallLegacyMsgHandler {
|
|
||||||
controller.InitOrder()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bzcon.LoadPendingOrders()
|
|
||||||
|
|
||||||
if beego.BConfig.RunMode == "dev" {
|
flag.BoolVar(&flagGitCommit, "gitcommit", false, "get gitcommit info")
|
||||||
beego.BConfig.WebConfig.DirectoryIndex = true
|
flag.BoolVar(&flagGitBranch, "gitbranch", false, "get gitbranch info")
|
||||||
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
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()
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user