Ejemplo n.º 1
0
void GatewayMgr::onRunCmdInterval()
{
    g_sm->checkCurrentOn(ServiceMgr::LOGIC);

    if (cmds_.length() == 0) {
        return;
    }

    CtpCmd* cmd = cmds_.head();

    // 检查时间是否到了=
    quint32 curTick = ::GetTickCount();
    if (curTick < cmd->expires) {
        return;
    }

    // 流控了就一秒后重试=
    if (cmd->fn(++reqId_) == -3) {
        cmd->expires = curTick + 1000;
        BfError("sendcmd toofast,reqId=%d", reqId_);
        emit gotGatewayError(-3, "sendmsg too fast", QString().sprintf("reqId=%d", reqId_));
        return;
    }

    // 消费掉这个cmd=
    cmds_.dequeue();
    delete cmd;
}
Ejemplo n.º 2
0
void CtpMgr::onRunCmdInterval()
{
    g_sm->checkCurrentOn(ServiceMgr::LOGIC);

    if (cmds_.length() == 0) {
        return;
    }

    CtpCmd* cmd = cmds_.head();

    // 检查时间是否到了=
    quint32 curTick = ::GetTickCount();
    if (curTick < cmd->expires) {
        return;
    }

    // 流控了就一秒后重试=
    if (cmd->fn(++reqId_, cmd->robotId) == -3) {
        cmd->expires = curTick + 1000;
        BfDebug("sendcmd toofast,reqId=%d", reqId_);
        return;
    }

    // 消费掉这个cmd=
    cmds_.dequeue();
    delete cmd;
}