def _last_update_time(shop, task): last_before_datetime = mwsdatetime.to_naive(task.before_datetime) last_after_datetime = mwsdatetime.to_naive(task.after_datetime) params = {} after_date = None before_date = None utcnow = datetime.utcnow() if (last_before_datetime + timedelta(minutes=22)) <= utcnow: after_date = last_before_datetime - timedelta(seconds=1) before_date = after_date + timedelta(minutes=20) elif shop.begin_sale_date < task.after_datetime.date(): before_date = last_after_datetime + timedelta(seconds=1) after_date = before_date - timedelta(minutes=20) else: return None params['PostedAfter'] = after_date.isoformat() + "Z" params['PostedBefore'] = before_date.isoformat() + "Z" task.last_before_datetime = before_date task.last_after_datetime = after_date task.save() return params
def is_throttling(self): now = datetime.utcnow() - timedelta(seconds=3) working_date = mwsdatetime.to_naive(self.start_work_datetime) if now < working_date: return True return False
def is_timeout(self): now = datetime.utcnow() - timedelta(minutes=5) working_date = mwsdatetime.to_naive(self.start_work_datetime) if now > working_date: return True return False