From 6b2736b03b4ed3e909729659f42b3fb74d8fea60 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 4 Nov 2025 16:56:01 +0800 Subject: [PATCH] bugfix --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ longtasks/init.py | 14 ++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 longtasks/init.py diff --git a/README.md b/README.md index d399ee6..7f8bfee 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,44 @@ # longtasks +## Usage + +Use with ahserver, you need to save a instance of LongTasks or its child class to ServerEnv, in child class, implements the process_task method for your business + +save LongTasks instace to ServerEnv: +``` +from ahserver.serverenv import ServerEnv +from longtasks.longtasks import Longtasks +from appPublic.worker import schedule_once + +class MyTasks(LongTasks): + # Child class + async def process_task(self, payload): + # use logic to execute task + pass + +def load_longtasks() + longtasks = MyTasks('redis://127.0.0.1:6379', 'example') + env = ServerEnv() + env.longtasks = longtasks + # run the backend job + schedule_once(0.1, longtasks.run) + +``` + +submit a task in dspy +``` +payload = { + 'prompt':'gagagag' +} +x = await longtasks.submit_task(payload) +# x is a dict with has a 'task_id' key +return x +``` + +query task status +``` +taskid = 'mytaskid' +task_status = await longtasks.get_status(taskid) +return task_status +``` + diff --git a/longtasks/init.py b/longtasks/init.py new file mode 100644 index 0000000..56228b8 --- /dev/null +++ b/longtasks/init.py @@ -0,0 +1,14 @@ +from ahserver.serverenv import ServerEnv +from longtasks.longtasks import Longtasks +from appPublic.worker import schedule_once + +class MyTasks(LongTasks): + async def process_task(self, payload): + .... + +def load_longtasks() + longtasks = MyTasks('redis://127.0.0.1:6379', 'example') + env = ServerEnv() + env.longtasks = longtasks + schedule_once(0.1, longtasks.run) +