def queueConsumer(queue,mlr): upcoming = queue.getUpcoming() if not upcoming: return target = list(upcoming)[0].scheduledTime curTime = int(time.time()) if curTime >= target: for mtask in upcoming: printTS = time.strftime("[%H:%M:%S]") late = curTime-target print printTS+" Sending mail with subject \""+mtask.subject+"\", "+str(late)+" seconds after target" ret = mlr.send(mtask.sender, mtask.replyto, mtask.recipients, mtask.bcc, mtask.subject, mtask.body) print ret if ret != 0: postponed = copy.copy(mtask) postponed.scheduledTime += 300 print "Send failed, delaying 5 minutes" taskfs.writeTask(postponed) queue.delete(mtask) taskfs.deleteTask(mtask) pass
def writeMailTask(self,subject,msg,scheduledTime): mt = self.toMailTask(subject,msg,scheduledTime) taskfs.writeTask(mt)