diff --git a/InvenTree/InvenTree/apps.py b/InvenTree/InvenTree/apps.py index b4563c7c65..faef1a6cdb 100644 --- a/InvenTree/InvenTree/apps.py +++ b/InvenTree/InvenTree/apps.py @@ -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: diff --git a/InvenTree/common/migrations/0013_auto_20211207_2250.py b/InvenTree/common/migrations/0013_auto_20211207_2250.py deleted file mode 100644 index 2cb061f028..0000000000 --- a/InvenTree/common/migrations/0013_auto_20211207_2250.py +++ /dev/null @@ -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, - ) - ]