34 lines
1.1 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 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)