def _getNextRunDate(self,pd): mdate = datetime.strptime(pd,'%Y%m%d') dayOfWk = mdate.weekday() nxtDay = 1 nrd = su.getDayPlusStr(nxtDay,pd,'%Y%m%d') self.log.debug('pd=%s dayOfWk=%s nxtDay=%s Next Run Date (nrd) =%s ' % (pd,su.DL[dayOfWk],nxtDay,nrd)) return nrd
def _getWDayNextRunDate(pd, sch): mdate = datetime.strptime(pd, "%Y%m%d") dow = mdate.weekday() if dow > 4: return 2 # Last ran date is Sat or Sun. Probably a recovery. if dow == 4: nxtDay = 3 # Friday else: nxtDay = 1 nrd = su.getDayPlusStr(nxtDay, pd, "%Y%m%d") return nrd
def _getCustNextRunDate(pd, sch): nxtDay = -1 if len(sch) < 1: return 3 sd = [] for s in sch: if custDay.has_key(s): sd.append(custDay.get(s)) else: return 4 sd.sort() mdate = datetime.strptime(pd, "%Y%m%d") dow = mdate.weekday() slen = len(sd) if slen == 1: return _getWklyNextRunDate(pd, sch) # Weekly run if slen == 7: return _getDlyNextRunDate(pd, sch) # daily run # sched has 2 ot 6 elements. tail = sd[slen - 1] print "tail = %s" % (tail) i = 0 for s in sd: if s == dow: if s == tail: nxtDay = 7 - sd[i] + sd[0] else: nxtDay = sd[i + 1] - s break i += 1 print "dow = %s s = %s tail = %s i = %d slen = %s ==nxtDay = %s " % (dow, s, tail, i, slen, nxtDay) if nxtDay != -1: return su.getDayPlusStr(nxtDay, pd, "%Y%m%d") else: return 6
def _getWklyNextRunDate(pd, sch): return su.getDayPlusStr(7, pd, "%Y%m%d")