Fix 'flush_old_route_record' code
This commit is contained in:
parent
c7b6287687
commit
bbbde3663b
1 changed files with 25 additions and 7 deletions
|
|
@ -12,11 +12,9 @@ class RouteHistory(Document):
|
|||
|
||||
@frappe.whitelist()
|
||||
def save_route_history(routes):
|
||||
# print('Dump history---------------------------')
|
||||
frappe.cache().rpush('route_history', routes)
|
||||
|
||||
def save_route_history_to_db():
|
||||
# print('================================= Saving Route History')
|
||||
values = []
|
||||
while frappe.cache().llen('route_history') > 0:
|
||||
routes = frappe.cache().lpop('route_history')
|
||||
|
|
@ -37,9 +35,29 @@ def save_route_history_to_db():
|
|||
frappe.db.commit()
|
||||
|
||||
def flush_old_route_records():
|
||||
frappe.db.sql('''
|
||||
SELECT `user`, count(`name`) AS count
|
||||
"""Deletes all route records except last 500 records per user"""
|
||||
|
||||
records_to_keep_limit = 500
|
||||
users = frappe.db.sql('''
|
||||
SELECT `user`
|
||||
FROM `tabRoute History`
|
||||
WHERE count > 20
|
||||
GROUP BY `name`
|
||||
''')
|
||||
GROUP BY `user`
|
||||
HAVING count(`name`) > {limit}
|
||||
'''.format(limit=records_to_keep_limit))
|
||||
|
||||
for user in users:
|
||||
user = user[0]
|
||||
last_record_to_keep = frappe.db.get_all('Route History',
|
||||
filters={
|
||||
'user': user,
|
||||
},
|
||||
limit=1,
|
||||
limit_start=500,
|
||||
fields=['modified'],
|
||||
order_by='modified desc')
|
||||
|
||||
frappe.db.sql('''
|
||||
DELETE
|
||||
FROM `tabRoute History`
|
||||
WHERE `modified` <= '{modified}' and `user`='{user}'
|
||||
'''.format(modified=last_record_to_keep[0].modified, user=user))
|
||||
Loading…
Add table
Reference in a new issue