Skip to content

Commit bdee7b6

Browse files
committed
feat: Polling improvement
1 parent 66b4a9e commit bdee7b6

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

appinfo/info.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ See [the nextcloud admin docs](https://docs.nextcloud.com/server/latest/admin_ma
2424
<repository type="git">https://github.com/nextcloud/llm2</repository>
2525
<screenshot>https://raw.githubusercontent.com/nextcloud/llm2/main/img/Logo.png</screenshot>
2626
<dependencies>
27-
<nextcloud min-version="30" max-version="32"/>
27+
<nextcloud min-version="33" max-version="33"/>
2828
</dependencies>
2929
<external-app>
3030
<docker-install>

lib/main.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,15 @@ def log(nc, level, content):
3636
"https://huggingface.co/bartowski/Meta-Llama-3.1-8B-Instruct-GGUF/resolve/4f0c246f125fc7594238ebe7beb1435a8335f519/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf": { "save_path": os.path.join(persistent_storage(), "Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf") },
3737
}
3838
app_enabled = Event()
39-
39+
trigger = Event()
4040

4141
@asynccontextmanager
4242
async def lifespan(_app: FastAPI):
4343
set_handlers(
4444
APP,
4545
enabled_handler, # type: ignore
4646
models_to_fetch=models_to_fetch,
47+
trigger_handler=trigger_handler
4748
)
4849
nc = NextcloudApp()
4950
if nc.enabled_state:
@@ -85,14 +86,15 @@ def background_thread_task():
8586
(model, task) = task_processor_name.split(":", 1)
8687
task_type_ids.add(task)
8788

89+
trigger.clear()
8890
try:
8991
response = nc.providers.task_processing.next_task(list(provider_ids), list(task_type_ids))
9092
if not response:
91-
sleep(5)
93+
trigger.wait(timeout=30)
9294
continue
9395
except (NextcloudException, RequestException, JSONDecodeError) as e:
9496
log(nc, LogLvl.ERROR, f"Network error fetching the next task {e}")
95-
sleep(5)
97+
trigger.wait(timeout=5)
9698
continue
9799

98100
task = response["task"]
@@ -122,7 +124,6 @@ def background_thread_task():
122124
# Error when reporting the result
123125
exception_info = traceback.format_exception(type(e), e, e.__traceback__)
124126
log(nc, LogLvl.ERROR, f"Error: {''.join(exception_info)}")
125-
sleep(5)
126127
except Exception as e: # noqa
127128
exception_info = traceback.format_exception(type(e), e, e.__traceback__)
128129
log(nc, LogLvl.ERROR, f"Error: {''.join(exception_info)}")
@@ -131,8 +132,8 @@ def background_thread_task():
131132
nc.providers.task_processing.report_result(task["id"], error_message=str(e))
132133
except (NextcloudException, RequestException) as net_err:
133134
log(nc, LogLvl.INFO, f"Network error in reporting the error: {net_err}")
134-
135-
sleep(5)
135+
# if trigger has been set sinec the start of this iteration this will pass right through
136+
trigger.wait(timeout=30)
136137

137138

138139
def start_bg_task():
@@ -184,5 +185,9 @@ async def enabled_handler(enabled: bool, nc: AsyncNextcloudApp) -> str:
184185
return ""
185186

186187

188+
def trigger_handler(providerId: str):
189+
print('TRIGGER called')
190+
trigger.set()
191+
187192
if __name__ == "__main__":
188193
run_app("main:APP", log_level="trace")

0 commit comments

Comments
 (0)