public OpRes reqGenGiftCode(ParamGenGiftCode param) { int state = getRemoteServerState(0); if (state == StateMgr.state_closed) { return(OpRes.op_res_export_excel_not_open); } try { ServersEngine e = m_serversEngines[0]; int retCode = e.reqService(param, ServiceType.serviceTypeGiftCode); if (retCode == (int)RetCodeRemote.ret_error) { return(OpRes.op_res_failed); } if (retCode == (int)RetCodeRemote.ret_busy) { return(OpRes.op_res_export_service_busy); } return(OpRes.opres_success); } catch (System.Exception ex) { } return(OpRes.op_res_failed); }
private void genGiftCode(ParamGenGiftCode codeParam, DateTime now) { int i = 0, j = 0; List <Dictionary <string, object> > docList = new List <Dictionary <string, object> >(); int serverId = DBMgr.getInstance().getDbId(codeParam.m_dbServerIP); if (serverId == -1) { return; } for (i = 0; i < codeParam.m_codeList.Count; i++) { GiftCodeInfo info = codeParam.m_codeList[i]; for (j = 0; j < info.m_count; j++) { Dictionary <string, object> ret = createOneCode(info.m_giftId, info.m_plat, now); docList.Add(ret); if (docList.Count > 5000) { DBMgr.getInstance().insertData(TableName.GIFT_CODE, docList, serverId, DbName.DB_ACCOUNT); docList.Clear(); } } } if (docList.Count > 0) { DBMgr.getInstance().insertData(TableName.GIFT_CODE, docList, serverId, DbName.DB_ACCOUNT); } }
public override int doService(ServiceParam param) { if (param == null || m_thread == null) { return((int)RetCode.ret_error); } ParamGenGiftCode p = (ParamGenGiftCode)param; lock (m_lockObj) { m_taskQue.Enqueue(p); m_curState = ThreadState.state_busy; } return((int)RetCode.ret_success); }
private void run() { while (m_run) { switch (m_curState) { case ThreadState.state_idle: { Thread.Sleep(5000); } break; case ThreadState.state_busy: { ParamGenGiftCode data = null; DateTime now = DateTime.Now; while (m_taskQue.Count > 0) { lock (m_lockObj) { data = m_taskQue.Dequeue(); } if (!m_run) { break; } if (data != null) { genGiftCode(data, now); } } m_curState = ThreadState.state_idle; } break; } } }