예제 #1
0
 def __init__(self, workerData):
     self.workerData = workerData
     self.formattedStartDate = prettyPrintTime(workerData.startedDate)
     if workerData.finishedDate != None:
         self.formattedFinishDate = prettyPrintTime(workerData.finishedDate)
     else:
         self.runTime = nowInSeconds() - workerData.startedDate
예제 #2
0
 def __init__(self, workerData):
     self.workerData = workerData
     self.formattedStartDate = prettyPrintTime(workerData.startedDate)
     if workerData.finishedDate != None:
         self.formattedFinishDate = prettyPrintTime(workerData.finishedDate)
     else:
         self.runTime = nowInSeconds() - workerData.startedDate
예제 #3
0
 def __init__(self,fibData):
     self.fibData = fibData
     self.formattedStartDate = prettyPrintTime(fibData.startedDate)
     if fibData.finishedDate != None:
         self.formattedFinishDate = prettyPrintTime(int(fibData.finishedDate))
     else:
         self.formattedFinishDate = 'in progress'
예제 #4
0
 def __init__(self, fibData):
     self.fibData = fibData
     self.formattedStartDate = prettyPrintTime(fibData.startedDate)
     if fibData.finishedDate != None:
         self.formattedFinishDate = prettyPrintTime(
             int(fibData.finishedDate))
     else:
         self.formattedFinishDate = 'in progress'
예제 #5
0
    def processMessage(message):
        '''
            this is the handler function passed to getAndProcessMessages
            '''
        dataMap = {}
        dataMap['worker_id'] = workerId
        dataMap['request_id'] = message.requestId
        dataMap['fib_id'] = message.messageKey
        dataMap['fib_value'] = -1
        dataMap['started_date'] = message.startedDate

        workerData = WorkerData(body=dataMap)
        log.debug(
            "worker %s starting Fibonnaci on %d at %s" %
            (workerId, workerData.fibId, prettyPrintTime(nowInSeconds())))

        addedWorkerData = workerDataDB.getWorkerData(
            requestId=workerData.requestId)

        if addedWorkerData != None:
            # if this is already in progress with another worker
            if addedWorkerData.workerId == workerId:
                log.error(
                    "expecting that this data was being worked on by a different worker, not %s"
                    % workerId)
            workerData.retryCount = addedWorkerData.retryCount + 1
            workerDataDB.updateWorkerData(workerData)
        else:
            addedWorkerData = workerDataDB.addWorkerData(workerData)

        log.debug("starting fib(%d)" % workerData.fibId)
        fibValue = F(message.messageKey)
        addedWorkerData.fibValue = fibValue
        log.debug("completed fib(%d), value = %d" %
                  (workerData.fibId, fibValue))
        addedWorkerData.finishedDate = nowInSeconds()
        workerDataDB.updateWorkerData(addedWorkerData)

        log.debug(
            "worker %s finished Fibonnaci on %d, calculated value = %d,  at %s"
            % (workerId, addedWorkerData.fibId, addedWorkerData.fibValue,
               prettyPrintTime(addedWorkerData.finishedDate)))

        # now send result back for result processing.
        resultsMessageQueue.sendMessage(
            WorkResultMessage(requestId=addedWorkerData.requestId,
                              messageKey=addedWorkerData.fibId,
                              messageValue=addedWorkerData.fibValue,
                              startedDate=addedWorkerData.startedDate,
                              finishedDate=addedWorkerData.finishedDate))
예제 #6
0
 def __init__(self, fibData):
     self.fibData = fibData
     self.formattedStartDate = prettyPrintTime(fibData.startedDate)
     if fibData.finishedDate != None:
         self.formattedFinishDate = prettyPrintTime(fibData.finishedDate)
     self.runTime = nowInSeconds() - fibData.startedDate
예제 #7
0
 def __init__(self, fibData):
     self.fibData = fibData
     self.formattedStartDate = prettyPrintTime(fibData.startedDate)
     if fibData.finishedDate != None:
         self.formattedFinishDate = prettyPrintTime(fibData.finishedDate)
     self.runTime = nowInSeconds() - fibData.startedDate
예제 #8
0
 def processMessage(message):
     '''
     this is the handler function passed to getAndProcessMessages
     '''
     dataMap = {}
     dataMap['worker_id'] = workerId
     dataMap['request_id'] = message.requestId
     dataMap['fib_id'] = message.messageKey
     dataMap['fib_value'] = -1
     dataMap['started_date'] =  message.startedDate
     
     workerData = WorkerData(body=dataMap)
     log.debug("worker %s starting Fibonnaci on %d at %s"%(workerId,workerData.fibId,prettyPrintTime(nowInSeconds())) )
     
         
     addedWorkerData = workerDataDB.getWorkerData(requestId = workerData.requestId)
     
     if addedWorkerData != None:
         # if this is already in progress with another worker 
         if addedWorkerData.workerId == workerId:
             log.error("expecting that this data was being worked on by a different worker, not %s"%workerId)
         workerData.retryCount = addedWorkerData.retryCount + 1
         workerDataDB.updateWorkerData(workerData)
     else:
         addedWorkerData = workerDataDB.addWorkerData(workerData)
         
     log.debug("starting fib(%d)"%workerData.fibId)
     fibValue = F(message.messageKey)
     addedWorkerData.fibValue = fibValue
     log.debug("completed fib(%d), value = %d"%(workerData.fibId,fibValue))
     addedWorkerData.finishedDate = nowInSeconds()
     workerDataDB.updateWorkerData(addedWorkerData)
     
     log.debug("worker %s finished Fibonnaci on %d, calculated value = %d,  at %s"%(workerId,addedWorkerData.fibId,addedWorkerData.fibValue,prettyPrintTime(addedWorkerData.finishedDate)) )
     
     # now send result back for result processing.
     resultsMessageQueue.sendMessage(WorkResultMessage(requestId = addedWorkerData.requestId, messageKey = addedWorkerData.fibId, messageValue = addedWorkerData.fibValue,startedDate = addedWorkerData.startedDate,finishedDate = addedWorkerData.finishedDate))