- elm use routine pool.

This commit is contained in:
gazebo
2018-06-28 12:38:45 +08:00
parent b756990cee
commit 718c54b507
3 changed files with 19 additions and 7 deletions

View File

@@ -19,18 +19,24 @@ var (
type OrderController struct {
}
func (o *OrderController) OrderMessage(msg *elmapi.CallbackMsg) *elmapi.CallbackResponse {
func (o *OrderController) OrderMessage(msg *elmapi.CallbackMsg) (retVal *elmapi.CallbackResponse) {
var innerMsg map[string]interface{}
err := utils.UnmarshalUseNumber([]byte(msg.Message), &innerMsg)
if err != nil {
return errResponseDataError
}
if msg.Type == elmapi.MsgTypeOrderValid {
return o.NewOrder(msg, innerMsg["id"].(string))
} else if msg.Type >= elmapi.MsgTypeMerchantValid && msg.Type <= elmapi.MsgTypeOrderFinished {
return o.OrderStatusChanged(msg, innerMsg["orderId"].(string))
}
return elmapi.SuccessResponse
retVal = elmapi.SuccessResponse
orderID := innerMsg["orderId"].(string)
globals2.RoutinePool.CallFun(func() {
if msg.Type == elmapi.MsgTypeOrderValid {
retVal = o.NewOrder(msg, orderID)
} else if msg.Type >= elmapi.MsgTypeMerchantValid && msg.Type <= elmapi.MsgTypeOrderFinished {
retVal = o.OrderStatusChanged(msg, orderID)
}
}, orderID)
return retVal
}
func (o *OrderController) NewOrder(msg *elmapi.CallbackMsg, orderId string) *elmapi.CallbackResponse {