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 KTVSynthTasks(LongTasks): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) 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 == 'synthesize': from workers.synthesize import run_synthesize return await run_synthesize(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'KTV synth longtasks worker started') def init(): env = ServerEnv() env.longtasks = KTVSynthTasks('redis://127.0.0.1:6379', 'ktv_synth', worker_cnt=1, stuck_seconds=1800, max_age_hours=24) add_startup(on_app_built) if __name__ == '__main__': webapp(init)