- elm use routine pool.
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user