class Client: def __init__(self, serverAddressList, clientManager): self._serverAddressList = serverAddressList self._gearmanClient = gearman.GearmanClient(self._serverAddressList) self._clientManager = clientManager self._parsingRequestQueue = ParsingRequestQueue() def getStatus(self, requestSequenceNumber="all"): return self._parsingRequestQueue.getRequestStatus(requestSequenceNumber) def submitRequest(self, parsingRequest): parsingRequest.setStatus(ParsingRequest.CONST_STATUS_SUBMITING) self._parsingRequestQueue.add(parsingRequest) input = encode(parsingRequest) submittedRequest = self._gearmanClient.submit_job("parsing", input, background=False, wait_until_complete=False) parsingRequest.setStatus(ParsingRequest.CONST_STATUS_PROCESSING) #completed_request = self._gearmanClient.([submitted_request,]) parsingRequest.setStatus(ParsingRequest.CONST_STATUS_FINISH) output = decode(completed_request.result) def run(self): pass
def __init__(self, serverAddressList, clientManager): self._serverAddressList = serverAddressList self._gearmanClient = gearman.GearmanClient(self._serverAddressList) self._clientManager = clientManager self._parsingRequestQueue = ParsingRequestQueue()
class ClientManager: #Attributes JOB_SERVER_ADDRESS_LIST = ["127.0.0.1:4730",] #Main methods def __init__(self): self._userInterface = None self._runMode = constants.RUN_MODE_DAEMON self._parsingRequestQueue = ParsingRequestQueue() def start(self, runMode=constants.RUN_MODE_DAEMON): self._runMode = runMode if (self._runMode==constants.RUN_MODE_DAEMON): pass else: self._userInterface = UserInterface(self) self._userInterface.start() def stop(self): print("clientManager stopping...") exit(0) #Sub - methods def submitParsingRequest(self, parsingRequest): gearmanClient = Client(ClientManager.JOB_SERVER_ADDRESS_LIST, parsingRequest) gearmanClient.run() gearmanClient = None def readStatus(self, requestSequenceNumber="all"): return self._parsingRequestQueue.getStatus(requestSequenceNumber)
def __init__(self): self._userInterface = None self._runMode = constants.RUN_MODE_DAEMON self._parsingRequestQueue = ParsingRequestQueue()