44 lines
1.2 KiB
Python

import os
from ahserver.webapp import webapp
from ahserver.serverenv import ServerEnv
from ahserver.configuredServer import add_startup
from longtasks.longtasks import LongTasks, schedule_once
from appPublic.log import debug
class ASRTasks(LongTasks):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.gpu_id = int(os.environ.get('ASR_GPU_ID', '5'))
async def process_task(self, payload, workid=None):
import json
if isinstance(payload, str):
payload = json.loads(payload)
task_type = payload.get('task_type', '')
if task_type == 'transcribe':
from workers.transcribe import run_transcribe
return await run_transcribe(self, payload)
raise ValueError(f'Unknown task_type: {task_type}')
async def on_app_built(app):
env = ServerEnv()
lt = env.longtasks
if lt:
schedule_once(0.1, lt.run)
debug(f'ASR longtasks worker started, GPU: {lt.gpu_id}')
def init():
env = ServerEnv()
env.longtasks = ASRTasks(
'redis://127.0.0.1:6379', 'asr',
worker_cnt=1, stuck_seconds=600, max_age_hours=24
)
add_startup(on_app_built)
if __name__ == '__main__':
webapp(init)