예제 #1
0
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
예제 #2
0
 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
예제 #3
0
 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