wcs_search_tokens: add purge cron job (#86527)
gitea/wcs/pipeline/head There was a failure building this commit Details

This commit is contained in:
Pierre Ducroquet 2024-02-28 11:09:38 +01:00
parent d48bd8d392
commit 2a4459bfe4
2 changed files with 15 additions and 0 deletions

View File

@ -690,6 +690,10 @@ class QommonPublisher(Publisher):
for error in self.loggederror_class.select(clause=clauses):
self.loggederror_class.remove_object(error.id)
def clean_search_tokens(self, **kwargs):
from wcs import sql
sql.purge_obsolete_search_tokens()
@classmethod
def register_cronjobs(cls):
cls.register_cronjob(CronJob(cls.clean_sessions, minutes=[0], name='clean_sessions'))
@ -702,6 +706,7 @@ class QommonPublisher(Publisher):
cls.register_cronjob(
CronJob(cls.clean_loggederrors, hours=[3], minutes=[0], name='clean_loggederrors')
)
cls.register_cronjob(CronJob(cls.clean_search_tokens, weekdays=[0], hours=[1], minutes=[0], name='clean_tokens'))
_initialized = False

View File

@ -1735,6 +1735,16 @@ $function$;""")
def init_search_tokens_data(cur):
cur.execute("INSERT INTO wcs_search_tokens SELECT unnest(tsvector_to_array(fts)) FROM wcs_all_forms ON CONFLICT(token) DO NOTHING;")
def purge_obsolete_search_tokens(cur=None):
own_cur = False
if cur is None:
own_cur = True
conn, cur = get_connection_and_cursor()
cur.execute("DELETE FROM wcs_search_tokens WHERE token NOT IN (SELECT unnest(tsvector_to_array(fts)) FROM wcs_all_forms);")
if own_cur:
cur.close()
class SqlMixin:
_table_name = None
_numerical_id = True