Cleanup timeouted tequests

This commit is contained in:
Jan Losinski 2019-01-07 15:03:36 +01:00
parent 9f9c39b366
commit a03bee6268
1 changed files with 18 additions and 1 deletions

View File

@ -117,6 +117,22 @@ class Worker(object):
session.commit() session.commit()
def cleanup_old(self):
cutoff = datetime.datetime.utcnow() - datetime.timedelta(days=20)
with self._db.make_session_context() as session:
qry = session.query(model.Request) \
.options(joinedload(model.Request.data)) \
.filter(model.Request.data != None) \
.filter(model.Request.created < cutoff)
for item in qry:
item.resolved = datetime.datetime.utcnow()
item.state = "timeout"
if item.data is not None:
session.delete(item.data)
session.commit()
async def _run_once(self): async def _run_once(self):
requests = await self._loop.run_in_executor(None, self._request_queue) requests = await self._loop.run_in_executor(None, self._request_queue)
@ -130,6 +146,7 @@ class Worker(object):
functools.partial(_book, target, reqs, debug=self._debug))) functools.partial(_book, target, reqs, debug=self._debug)))
await self._loop.run_in_executor(None, functools.partial(self.cleanup_booked, booked)) await self._loop.run_in_executor(None, functools.partial(self.cleanup_booked, booked))
await self._loop.run_in_executor(None, self.cleanup_old)
async def run(self): async def run(self):
while True: while True: