Run at app startup, not as a migration

This commit is contained in:
Oliver 2021-12-08 22:26:59 +11:00
parent c8c35e2f04
commit b19a7cc4fb
2 changed files with 21 additions and 36 deletions

View File

@ -18,11 +18,32 @@ class InvenTreeConfig(AppConfig):
def ready(self):
if canAppAccessDatabase():
self.remove_obsolete_tasks()
self.start_background_tasks()
if not isInTestMode():
self.update_exchange_rates()
def remove_obsolete_tasks(self):
"""
Delete any obsolete scheduled tasks in the database
"""
obsolete = [
'InvenTree.tasks.delete_expired_sessions',
'stock.tasks.delete_old_stock_items',
]
try:
from django_q.models import Schedule
except (AppRegistryNotReady):
return
# Remove any existing obsolete tasks
Schedule.objects.filter(func__in=obsolete).delete()
def start_background_tasks(self):
try:

View File

@ -1,36 +0,0 @@
# Generated by Django 3.2.5 on 2021-12-07 22:50
from django.db import migrations
def delete_task(apps, schema_editor):
"""
Remove scheduled task to delete old user sessions.
Ref: https://github.com/inventree/InvenTree/issues/2429
"""
Task = apps.get_model('django_q', 'schedule')
Task.objects.filter(func='InvenTree.tasks.delete_expired_sessions').delete()
def ksat_eteled(apps, schema_editor):
"""
Dummy function provided for reverse migrations
"""
pass
class Migration(migrations.Migration):
dependencies = [
('common', '0012_notificationentry'),
]
operations = [
migrations.RunPython(
delete_task,
reverse_code=ksat_eteled,
)
]