def __HandleRecvParamBlockUnit(self, bstrParamContentLine, bstrParamSignID):
        bstrParamContentLine = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamContentLine)
        bstrParamSignID = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamSignID)

        bstrBlockArray = bstrParamContentLine.split(b'\n')
        if( bstrBlockArray):
            assignWebNameBlock = CTYBot_CTUnit_TaskRegCenter_Assign_WebNameBlock()
            # 提交到任务模块
            assignWebNameBlock.s_iRunPluginID = self.s_iRunPluginID
            assignWebNameBlock.s_bstrDomainNameArray = bstrBlockArray
            assignWebNameBlock.s_bstrUniqueSign = bstrParamSignID
            # 提交,发送
            self.s_midRecvCanUseParamBlockArray.append(assignWebNameBlock)
 def Viul_Internal_ParamBlock_PrePare(self, bstrRegCenterID):
     bstrRegCenterID = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrRegCenterID)
     with open(self.s_ustrRunTaskFileName, 'r') as ff:
         total = ff.read()
         bstrTotal = CTYLB_MainSys_MiscFunc.SafeGetUTF8(total)
         bstrContentArray = bstrTotal.split(b'\r')
         if (len(bstrContentArray) == 1):
             bstrContentArray = bstrTotal.split(b'\n')
         lines = bstrContentArray
         lines = [line.strip(b'\n') for line in lines]
         lines = [line.strip(b'\r') for line in lines]
         self.s_bstrRunContentArray = [x for x in lines if x != b'']
     pass
    def Viul_Notify_Recv_RunResult(self, bstrParamSign, iReplyPluginID, bstrOrigTitleDomain, bstrResult):
        bstrParamSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamSign)
        bstrOrigTitleDomain = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrOrigTitleDomain)
        bstrResult = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrResult)

        contentArray = [self.s_bstrResultAppName, self.s_bstrResultSubTaskName, bstrParamSign]
        bstrParam2Content = g_bstr_ResultContentSplit.join(contentArray)

        sendCTUnit = CTYBot_CTUnit_CommonData()
        sendCTUnit.SetIntData(g_i_OpResult_SubCmd_AddResult)
        sendCTUnit.SetStrData( bstrResult)
        sendCTUnit.SetParam(bstrOrigTitleDomain, bstrParam2Content)
        self.s_midStore_NeedSend_ResultData.append(sendCTUnit)
        pass
Esempio n. 4
0
 def Handle_PromptorRequester_NewAcceptSock(self, bstrPeerName,
                                            iNewAcceptSock_Prompter):
     bstrPeerName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrPeerName)
     retNewRequestHost = self.Search_Add_Request_HostUnit_By_IDName(
         bstrPeerName, iNewAcceptSock_Prompter)
     if (retNewRequestHost):
         retNewRequestHost.s_iAcceptSock = iNewAcceptSock_Prompter
    def Sys_IsParamSign_MyRunningParamArray(self, bstrCheckParamSign):
        bstrCheckParamSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrCheckParamSign)

        bRetValue = False
        if( bstrCheckParamSign in self.s_bstrPromptWaitFinishParamSignArray):
            bRetValue = True
        return bRetValue
Esempio n. 6
0
 def Search_OrigTaskSign_By_UniqueSign(self, bstrParamUniqueSign):
     bstrParamUniqueSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
         bstrParamUniqueSign)
     bRetExist = False
     if (bstrParamUniqueSign in self.s_bstrRunningParamSignArray):
         bRetExist = True
     return bRetExist
    def Sys_Reply_ParamBlock_Result(self, bstrOrigParamBlockSign, iResultCode):
        bstrOrigParamBlockSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrOrigParamBlockSign)

        self.Viul_FinishParamBlock( bstrOrigParamBlockSign, iResultCode)
        if( bstrOrigParamBlockSign in self.s_bstrPromptWaitFinishParamSignArray):
            bRemove = False
            if( iResultCode == CTYBot_CTUnit_CommonData.s_g_iIntValue_Task_Finish):
                bRemove = True
            elif( iResultCode == CTYBot_CTUnit_CommonData.s_g_iIntValue_Task_Finish_Fail):
                bRemove = True
            if( bRemove):
                self.s_bstrPromptWaitFinishParamSignArray.remove( bstrOrigParamBlockSign)
                CTYLB_Log.ShowLog( 0,'param-reply', 'block %s run-finish. %d, still_buff_len:[%d]' % (
                    bstrOrigParamBlockSign, iResultCode, len( self.s_bstrPromptWaitFinishParamSignArray)) )

                msgObject={
                    "monitor_type":"block-finish-reply",
                    "level":"info",
                    "target":"",
                    "plugin_id":self.s_iRunPluginID,
                    "block_id":bstrOrigParamBlockSign,
                    "block_size":0,
                    "free_size":0,
                    "wait_size":len( self.s_bstrPromptWaitFinishParamSignArray),
			        "success_size":0,
                    "result_code":iResultCode,
                    "msg":""}
                CTYLB_Log.ShowMonitor(msgType="PLC",msgObject=msgObject)
                pass
        pass
Esempio n. 8
0
    def Search_OrigTaskSign_ReqHostUnit_By_UniqueSign(self,
                                                      bstrParamUniqueSign,
                                                      lastOrigReqHostUnit):
        bstrParamUniqueSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
            bstrParamUniqueSign)
        retHostUnit = None
        bOrigRunParamExist = False
        bNeedTotalSearch = True

        # 这里快速判断是否上次单元
        if (lastOrigReqHostUnit):
            bCurExist = lastOrigReqHostUnit.Search_OrigTaskSign_By_UniqueSign(
                bstrParamUniqueSign)
            if (bCurExist):
                bOrigRunParamExist = True
                retHostUnit = lastOrigReqHostUnit
                bNeedTotalSearch = False

        # 需要进行全面搜索
        if (bNeedTotalSearch):
            for eachUnit in self.s_requestHostUnitArray:
                bCurExist = eachUnit.Search_OrigTaskSign_By_UniqueSign(
                    bstrParamUniqueSign)
                if (bCurExist):
                    bOrigRunParamExist = True
                    retHostUnit = eachUnit
                    break

        return bOrigRunParamExist, retHostUnit
    def __init__(self, ustrCfgFileName, ustrDbFileName):
        ustrCfgFileName = CTYLB_MainSys_MiscFunc.SafeGetUnicode(ustrCfgFileName)
        ustrDbFileName = CTYLB_MainSys_MiscFunc.SafeGetUnicode(ustrDbFileName)

        # 设置运行任务提交
        self.s_RunnDTaskArray = []   # 正在运行的任务队列

        # 创建机器人框架
        self.s_LessTYLB_Bot_FrameThread = CLessTYBotFrameThread(ustrCfgFileName, ustrDbFileName)
        # 设置默认环境处理
        # self.s_LessTYLB_Bot_FrameThread.SetDefaultConsoleCompatible( CtrlCHandle)
        # 准备运行
        self.s_LessTYLB_Bot_FrameThread.Prepare_Start()
        self.s_strSelfID = self.s_LessTYLB_Bot_FrameThread.GetMyName()
        # 注册 单元到达的通知,HLSession的新数据单元创建
        self.s_LessTYLB_Bot_FrameThread.RegisterNewCTUnit( CTYLB_Bot_BaseDef.s_g_iDataType_TaskRegCenter_sk_v1,
                                                           CTYLB_Bot_BaseDef.s_g_iMainCmd_TaskRegCenter_ReportResult_V2,
                                                           CTYLB_Bot_BaseDef.s_g_iSubCmd_TaskRegCenter_ReportResult_V2_PingTraceWebCrawl,
                                                           CTYBot_CTUnit_TaskRegCenter_CreateNewUnit_V2_ReportResult)
        self.s_LessTYLB_Bot_FrameThread.RegisterNewCTUnit( CTYLB_Bot_BaseDef.s_g_iDataType_TaskRegCenter_sk_v1,
                                                           CTYLB_Bot_BaseDef.s_g_iMainCmd_TaskRegCenter_ReportResult,
                                                           CTYLB_Bot_BaseDef.s_g_iSubCmd_TaskRegCenter_ReportResult_PingTraceWebCrawl,
                                                           CTYBot_CTUnit_TaskRegCenter_CreateNewUnit_ReportResult)

        # 获得管套管理对象
        self.s_hlSockMang = self.s_LessTYLB_Bot_FrameThread.s_HLSockMang
        # 读取配置参数
        ustrTaskRegCenterID = self.s_LessTYLB_Bot_FrameThread.s_execTYLB_Bot_Sample.ReadIniSectionValue( ustrCfgFileName,
                                                            u'client', u'taskcenter_id',
                                                            CTYLB_Bot_BaseDef.s_g_strBotName_TaskRegCenter_sk_v1)
        self.s_bstrTaskRegCenterID = CTYLB_MainSys_MiscFunc.SafeGetUTF8(ustrTaskRegCenterID)
        # 创建连接管套
        self.s_x_TaskRegCenter_Sock = CTYFBot_OpSession_ConnectSock(self.s_hlSockMang, self.s_bstrTaskRegCenterID,
                                                                    self.s_g_iTaskMang_Listen_Port_PromptTask)
        pass
Esempio n. 10
0
 def SearchExecHostUnitByIDName(self, bstrHostIDName):
     bstrHostIDName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrHostIDName)
     retHostUnit = None
     for eachUnit in self.s_execHostUnitArray:
         if (eachUnit.s_bstrHostIDName == bstrHostIDName):
             retHostUnit = eachUnit
             break
     return retHostUnit
Esempio n. 11
0
 def Handle_ExecPluginHost_NewAcceptSock(self, bstrPeerName,
                                         iNewAcceptSock_ExecPlugin):
     bstrPeerName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrPeerName)
     clientUnit = self.SearchExecHostUnitByIDName(bstrPeerName)
     if (clientUnit == None):
         clientUnit = CTYLB_TaskCenter_ExecHostUnit(bstrPeerName, None)
         self.s_execHostUnitArray.append(clientUnit)
         clientUnit.s_iSock_AcceptFromRemotePlugin = iNewAcceptSock_ExecPlugin
Esempio n. 12
0
    def Viul_FinishParamBlock(self, bstrOrigParamBlockSign, iResultCode):
        bstrOrigParamBlockSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrOrigParamBlockSign)

        sendCTUnit = CTYBot_CTUnit_CommonData()
        sendCTUnit.SetIntData(g_i_OpParamBlock_SubCmd_Finish_ParamBlock)
        sendCTUnit.SetStrData( bstrOrigParamBlockSign)
        sendCTUnit.SetParam(self.s_bstrObjParamName, str(iResultCode))
        self.s_midStore_NeedSend_FinishParamBlockArray.append(sendCTUnit)
Esempio n. 13
0
 def Search_execHostUnit_By_UniqueSign(self, bstrParamUniqueSign):
     bstrParamUniqueSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
         bstrParamUniqueSign)
     retHostUnit = None
     for eachUnit in self.s_execHostUnitArray:
         if (bstrParamUniqueSign in eachUnit.s_bstrTaskParamSignArray):
             retHostUnit = eachUnit
             break
     return retHostUnit
Esempio n. 14
0
    def __init__(self, bstrHostName, iAcceptSockIndex):
        bstrHostName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrHostName)

        self.s_lastSendCmdTime = datetime(2017, 1, 1)
        self.s_lastClientStatusData = None
        self.s_bstrHostIDName = bstrHostName
        self.s_lastRecvStatusTime = datetime.now()
        self.s_bstrTaskParamSignArray = []  # 任务参数队列

        self.s_iSock_AcceptFromRemotePlugin = iAcceptSockIndex  # 连接远端插件的管套ID
        self.s_toBeSendCTUnitArray = []  # 等待发送单元队列
    def __init__(self,
                 bstrSelfIDName,
                 threadPluginExecEachCallBack,
                 iThreadCount=10):
        bstrSelfIDName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrSelfIDName)

        self.s_runThreadMang = []  # 运行线程管理  CTYLB_HostExec_Thread
        self.s_globalQueue = queue.Queue()  # 线程同步
        self.s_waitRunParamUnit = []  # 等待运行的单元参数队列 CThreadRunParamUnit
        self.s_threadPluginExecEachCallBackFunc = threadPluginExecEachCallBack
        self.s_lastSendStatusContentTime = datetime(2017, 1, 1)
        self.s_bstrSelfIDName = bstrSelfIDName
        self.s_iSimuRunThreadCount = iThreadCount  # 线程个数
        pass
Esempio n. 16
0
    def Viul_Notify_Recv_RunResult(self, bstrParamSign, iReplyPluginID, bstrOrigDomain, bstrResult):
        bstrParamSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamSign)
        bstrOrigDomain = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrOrigDomain)
        bstrResult = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrResult)

        bstrShowResult = bstrResult
        s2 = bstrShowResult.replace(b'\r', b'')
        bstrShowResult = s2.replace(b'\n', b'')
        CTYLB_Log.ShowLog( 0, 'result-arrive', '[%s] - [%s] [%d] [%s]' % (bstrParamSign, bstrOrigDomain, iReplyPluginID, bstrShowResult))
        msgObject={
            "monitor_type":"result",
            "level":"info",
            "target":bstrOrigDomain,
            "plugin_id":self.s_iRunPluginID,
            "block_id":"",
            "block_size":0,
            "free_size":0,
            "wait_size":0,
			"success_size":0,
            "result_code":0,
            "msg":bstrResult
            }
        CTYLB_Log.ShowMonitor(msgType="PLC",msgObject=msgObject)
        pass
Esempio n. 17
0
 def Search_Add_Request_HostUnit_By_IDName(self,
                                           bstrHostIDName,
                                           iNewSock,
                                           bAddNew=True):
     bstrHostIDName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrHostIDName)
     retHostUnit = None
     for eachUnit in self.s_requestHostUnitArray:
         if (eachUnit.s_bstrHostIDName == bstrHostIDName):
             eachUnit.s_iAcceptSock = iNewSock
             retHostUnit = eachUnit
             break
     if (not retHostUnit):
         # 新主机,加入请求主机单元队列
         hostUnit = CTYLB_TaskCenter_RequestHostUnit(
             bstrHostIDName, iNewSock)
         self.s_requestHostUnitArray.append(hostUnit)
         retHostUnit = hostUnit
     return retHostUnit
Esempio n. 18
0
    def __init__(self, bstrHostName, iAcceptSock):
        bstrHostName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrHostName)

        self.s_bstrHostIDName = bstrHostName  # 主机名字
        self.s_requestParamUnitArray = [
        ]  # 请求执行的参数单元队列  CTYLB_P2P_ContentUnit_Base
        self.s_waitExecParamArray = [
        ]  #  等待执行的参数队列  CTYLB_P2P_ContentUnit_Base
        self.s_waitBroadCastParamArray = [
        ]  # 等待广播执行的参数队列  CTYLB_P2P_ContentUnit_Base
        self.s_bstrRunningParamSignArray = []  # 正在运行的参数标记队列bytes
        self.s_runningBCastParamArray = [
        ]  # 正在运行的参数队列  CTYLB_P2P_ContentUnit_Base
        self.s_lastScheduleTime = datetime(2017, 1, 1)  # 上次调度时间
        self.s_clientResultCTUnitArray = []  # 客户端结果发送的单元队列

        self.s_iAcceptSock = iAcceptSock  # 接收到请求端的管套ID
        self.s_toBeSendReplyCTUnitArray = []  # 等待发送的回复单元队列
        pass
    def __init__(self, bstrSelfIDName, ustrThreadName, paramQueue, iIndex,
                 threadPluginExecEachCallBackFunc):
        bstrSelfIDName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrSelfIDName)
        ustrThreadName = CTYLB_MainSys_MiscFunc.SafeGetUnicode(ustrThreadName)

        threading.Thread.__init__(self, name=ustrThreadName)
        self.s_MyQueue = paramQueue
        self.s_iMyIndex = iIndex

        self.g_ExecMutex = threading.Lock()  # 线程执行同步锁
        self.s_bThreadRunning = True

        self.s_runParamUnit = None  # 运行参数
        self.s_runResult = None  # 运行结果
        self.s_ExecMutex = threading.Lock()  # 线程执行同步锁
        self.s_iCurStatus = 0  # 空闲
        self.s_pluginExecWebCallBackFunc = threadPluginExecEachCallBackFunc
        self.s_bstrSelfIDName = bstrSelfIDName
        self.s_resultMiddleUnitArray = []  # 结果单元队列 CThreadRunResultUnit

        if (self.s_ExecMutex.acquire()):
            self.s_ExecMutex.release()
Esempio n. 20
0
    def __init__(self, hlSockMang, bstrResultAppName, bstrResultSubTaskName, bstrObjParamName, bstrParamDBName, bstrParamTableName, bstrParamContentField,
                 bstrParamSignIDField, iDestPluginID, iEachBlockCount=50):
        CTYBot_WebName_DTask2_Base.__init__(self, iDestPluginID, '', iEachBlockCount)
        self.s_bstrResultAppName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrResultAppName)
        self.s_bstrResultSubTaskName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrResultSubTaskName)

        self.s_bstrObjParamName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrObjParamName)
        self.s_bstrParamDBName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamDBName)
        self.s_bstrParamTableName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamTableName)
        self.s_bstrParamContentFieldName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamContentField)
        self.s_bstrIDSignFieldName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamSignIDField)

        self.s_parentHLSockMang = hlSockMang
        self.s_connectOPDBSrv_Param_Sock = CTYFBot_OpSession_ConnectSock( hlSockMang, g_bstrTYFBot_OPDB_SrvName, g_i_ListenSock_TYFBot_OP_DB_Operate_ParamBlock)
        self.s_connectOPDBSrv_Result_Sock = CTYFBot_OpSession_ConnectSock( hlSockMang, g_bstrTYFBot_OPDB_SrvName, g_i_ListenSock_TYFBot_OP_DB_Operate_Result)

        self.s_iExecStep = CTYFBot_DTask_OPDB_Prompter.s_g_iStep_WaitConnect
        self.s_midRecvCanUseParamBlockArray = []   # 中间存储的参数块队列
        self.s_iCanSend_ReqParamCount = 0          # request param count, need send
        self.s_midStore_NeedSend_ResultData = []   # 中间存储的Result队列
        self.s_midStore_NeedSend_FinishParamBlockArray = []   # 中间存储需要发送的的参数结果队列

        pass
    def run(self):
        self.s_MyQueue.get()

        lastSendResultTime = datetime.now()  # 上次发送时间
        iSendWaitDiffTime = 30  # 每30秒发送一次
        while (self.s_bThreadRunning):
            iCurStatus = self.Safe_GetStatus()
            if (iCurStatus == CTYLB_HostExec_V2_Thread.s_g_iPrepareRun):
                # 调度参数进行运行
                self.Safe_SetStatus(CTYLB_HostExec_V2_Thread.s_g_iRunning)

                # 发送开始运行的消息
                bstrOrigParamUniqSign = self.s_runParamUnit.s_assignTaskParam.s_bstrUniqueSign
                replyCommUnit = CTYBot_CTUnit_CommonData()
                replyCommUnit.SetIntData(
                    CTYBot_CTUnit_CommonData.s_g_iIntValue_Task_Start_Run)
                replyCommUnit.SetParam(bstrOrigParamUniqSign,
                                       self.s_bstrSelfIDName)
                self.Safe_AddMiddleResultData(
                    self.s_runParamUnit.s_bstrFromName, replyCommUnit)

                # 设置参数标识
                reportResultV2 = CTYBot_CTUnit_TaskRegCenter_ReportResult_V2()
                reportResultV2.s_bstrOrigTaskUniqueSign = bstrOrigParamUniqSign
                # 发送每个运行结果
                paramCTUnit = self.s_runParamUnit.s_assignTaskParam
                if (paramCTUnit.s_iMyDataType ==
                        CTYLB_Bot_BaseDef.s_g_iDataType_TaskRegCenter_sk_v1):
                    if (paramCTUnit.s_iBotCmd_Main == CTYLB_Bot_BaseDef.
                            s_g_iMainCmd_TaskRegCenter_Assign_WebNameBlock):
                        if (paramCTUnit.s_iBotCmd_Sub == CTYLB_Bot_BaseDef.
                                s_g_iSubCmd_TaskRegCenter_Assign_WebNameBlock):
                            iRunPluginID = paramCTUnit.s_iRunPluginID
                            bstrRunHostNameArray = paramCTUnit.s_bstrDomainNameArray

                            for bstrEachHost in bstrRunHostNameArray:
                                ustrEachHost = CTYLB_MainSys_MiscFunc.SafeGetUnicode(
                                    bstrEachHost)
                                iReplyPluginID, bstrRunContent = 0, b''
                                if (self.s_pluginExecWebCallBackFunc):
                                    try:
                                        iReplyPluginID, ustrRunContent = self.s_pluginExecWebCallBackFunc(
                                            iRunPluginID, ustrEachHost)
                                        bstrRunContent = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
                                            ustrRunContent)
                                    except Exception as e:
                                        ustrMsg = u'Run Plugin [%s] Error.[%s]' % (
                                            ustrEachHost, str(e))
                                        CTYLB_Log.ShowLog(
                                            1, u'Running Plugin %d' %
                                            (iRunPluginID), ustrMsg)
                                        pass

                                # 加入到队列,进行输出
                                bstrFixRunContent = CTYLB_P2P_ContentUnit_Base_bytes.SafeConvertStrToUTF8_Base64(
                                    bstrRunContent)
                                reportResultV2.AddSubResultUnit(
                                    iReplyPluginID, bstrEachHost,
                                    bstrFixRunContent)
                                curTime = datetime.now()
                                timeDiff = curTime - lastSendResultTime
                                if (timeDiff.seconds >= iSendWaitDiffTime):
                                    lastSendResultTime = curTime
                                    self.Safe_AddMiddleResultData(
                                        self.s_runParamUnit.s_bstrFromName,
                                        reportResultV2)
                                    # 输出后,重新申请一个新的单元
                                    reportResultV2 = CTYBot_CTUnit_TaskRegCenter_ReportResult_V2(
                                    )
                                    reportResultV2.s_bstrOrigTaskUniqueSign = bstrOrigParamUniqSign
                                time.sleep(0.1)
                                pass
                # 有有效内容?输出
                if (len(reportResultV2.s_subResultUnitArray) > 0):
                    self.Safe_AddMiddleResultData(
                        self.s_runParamUnit.s_bstrFromName, reportResultV2)

                # 发送运行完成的消息
                replyCommUnit = CTYBot_CTUnit_CommonData()
                replyCommUnit.SetIntData(
                    CTYBot_CTUnit_CommonData.s_g_iIntValue_Task_Finish)
                replyCommUnit.SetParam(
                    self.s_runParamUnit.s_assignTaskParam.s_bstrUniqueSign,
                    b'')
                self.Safe_AddMiddleResultData(
                    self.s_runParamUnit.s_bstrFromName, replyCommUnit)
                # 任务自由,可以重新接收参数运行
                self.Safe_SetStatus(CTYLB_HostExec_V2_Thread.s_g_iFree)
                pass
            bTaskBusy = False
            if (not bTaskBusy):
                time.sleep(0.1)

        self.s_MyQueue.task_done()  # finish queue unit
        pass
Esempio n. 22
0
 def SetTaskFinish(self, bstrParamUnitUniqueSign):
     bstrParamUnitUniqueSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
         bstrParamUnitUniqueSign)
     if (bstrParamUnitUniqueSign in self.s_bstrRunningParamSignArray):
         self.s_bstrRunningParamSignArray.remove(bstrParamUnitUniqueSign)
     pass
 def Safe_AddMiddleResultData(self, bstrFrom, resultUnit):
     bstrFrom = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrFrom)
     if (self.s_ExecMutex.acquire()):
         self.s_resultMiddleUnitArray.append(
             CThreadRunResultUnit(bstrFrom, resultUnit))
         self.s_ExecMutex.release()
 def __init__(self, bstrFromSenderName, resultUnit):
     bstrFromSenderName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
         bstrFromSenderName)
     self.s_bstrFromName = bstrFromSenderName
     self.s_runResultUnit = resultUnit
Esempio n. 25
0
 def IsParamBlockSignInMyArray(self, bstrParamSign):
     bstrParamSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamSign)
     bRetValue = False
     if( bstrParamSign in self.s_bstrPromptWaitFinishParamSignArray):
         bRetValue = True
     return bRetValue
 def __init__(self, bstrFromName, assignTaskUnit):
     bstrFromName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrFromName)
     self.s_bstrFromName = bstrFromName
     self.s_assignTaskParam = assignTaskUnit
Esempio n. 27
0
 def SetTaskSignFinish(self, bstrParamSign):
     bstrParamSign = CTYLB_MainSys_MiscFunc.SafeGetUTF8(bstrParamSign)
     if (bstrParamSign in self.s_bstrTaskParamSignArray):
         self.s_bstrTaskParamSignArray.remove(bstrParamSign)
    # 设置默认环境处理
    g_LessTYLB_Bot_ExecPlugin_FrameThread.SetDefaultConsoleCompatible(
        CtrlCHandle)
    # 注册用到的数据单元,当HLSession单元收到后,里面用到的单元数据
    g_LessTYLB_Bot_ExecPlugin_FrameThread.RegisterNewCTUnit(
        CTYLB_Bot_BaseDef.s_g_iDataType_TaskRegCenter_sk_v1,
        CTYLB_Bot_BaseDef.s_g_iMainCmd_TaskRegCenter_Assign_WebNameBlock,
        CTYLB_Bot_BaseDef.s_g_iSubCmd_TaskRegCenter_Assign_WebNameBlock,
        CTYBot_CTUnit_TaskRegCenter_CreateNewUnit_AssignWebNameBlock)
    # 准备运行
    g_LessTYLB_Bot_ExecPlugin_FrameThread.Prepare_Start()
    # 读取服务器配置
    ustrTaskRegCenterName = g_LessTYLB_Bot_ExecPlugin_FrameThread.s_execTYLB_Bot_Sample.ReadIniSectionValue(
        config_file, u'client', u'taskcenter_id',
        CTYLB_Bot_BaseDef.s_g_strBotName_TaskRegCenter_sk_v1)
    bstrTaskRegCenterName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
        ustrTaskRegCenterName)
    # 创建运行任务线程管理单元
    bstrSelfIDName = CTYLB_MainSys_MiscFunc.SafeGetUTF8(
        g_LessTYLB_Bot_ExecPlugin_FrameThread.GetMyName())
    g_hostExecPluginBot = CTYLB_Host_V2_ExecPlugin_Bot(
        bstrSelfIDName, CTYBot_ExecPlugin_Each_CallBack_RunParam)
    g_hostExecPluginBot.StartRunThreads()

    hlSockMang = g_LessTYLB_Bot_ExecPlugin_FrameThread.s_HLSockMang
    connectEchoSock = CTYFBot_OpSession_ConnectSock(
        hlSockMang, bstrTaskRegCenterName,
        s_g_iTaskMang_Listen_Port_PluginStatusResult)
    CTYLB_Log.ShowLog(
        0, u'RunPlugin', u'start HLSock connect remote TRC_Center.[%s:%d]' %
        (bstrTaskRegCenterName, s_g_iTaskMang_Listen_Port_PluginStatusResult))