From fcf878e1f36215dfae0eaf27a161f6066f70b2df Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Wed, 17 Apr 2024 12:23:55 +0530 Subject: [PATCH] Add new operation Scheduled Job to Operation enum of ProcessLock --- src/khoj/configure.py | 2 +- .../migrations/0036_alter_processlock_name.py | 19 +++++++++++++++++++ src/khoj/database/models/__init__.py | 3 ++- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/khoj/database/migrations/0036_alter_processlock_name.py diff --git a/src/khoj/configure.py b/src/khoj/configure.py index 38b8223f..81e653d4 100644 --- a/src/khoj/configure.py +++ b/src/khoj/configure.py @@ -324,7 +324,7 @@ def update_content_index(): @schedule.repeat(schedule.every(22).to(25).hours) def update_content_index_regularly(): ProcessLockAdapters.run_with_lock( - update_content_index, ProcessLock.Operation.UPDATE_EMBEDDINGS, max_duration_in_seconds=60 * 60 * 2 + update_content_index, ProcessLock.Operation.INDEX_CONTENT, max_duration_in_seconds=60 * 60 * 2 ) diff --git a/src/khoj/database/migrations/0036_alter_processlock_name.py b/src/khoj/database/migrations/0036_alter_processlock_name.py new file mode 100644 index 00000000..87c9a0d4 --- /dev/null +++ b/src/khoj/database/migrations/0036_alter_processlock_name.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.10 on 2024-04-16 18:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("database", "0035_processlock"), + ] + + operations = [ + migrations.AlterField( + model_name="processlock", + name="name", + field=models.CharField( + choices=[("index_content", "Index Content"), ("scheduled_job", "Scheduled Job")], max_length=200 + ), + ), + ] diff --git a/src/khoj/database/models/__init__.py b/src/khoj/database/models/__init__.py index 4077c35c..ad35be01 100644 --- a/src/khoj/database/models/__init__.py +++ b/src/khoj/database/models/__init__.py @@ -109,7 +109,8 @@ class Agent(BaseModel): class ProcessLock(BaseModel): class Operation(models.TextChoices): - UPDATE_EMBEDDINGS = "update_embeddings" + INDEX_CONTENT = "index_content" + SCHEDULED_JOB = "scheduled_job" # We need to make sure that some operations are thread-safe. To do so, add locks for potentially shared operations. # For example, we need to make sure that only one process is updating the embeddings at a time.