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