def auto_finish_delivery():
def finish_job():
from xiaodi.api.mysql import session_scope, Task
now = datetime.utcnow()
for id_, deadline in TaskDepot.scan_finish_task():
deadline, id_ = tranform_utctime(deadline), int(id_)
if now < deadline:
break
with session_scope() as session:
delivery = session.query(Task).filter(Task.id == id_).first()
user = gen_temp_object(id=delivery.puser_id)
DeliveryManager.finish(user, delivery, session=session)
LOG.info('auto finish task finished')
schedule.every(30).minutes.do(finish_job)
评论列表
文章目录