#!/usr/bin/env python3 # -*- coding: utf-8 -*- """KTV产线交付质检服务 — verify_delivery as HTTP service""" import sys, os sys.path.insert(0, os.path.dirname(__file__)) 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 from workers.verify import VerifyWorker class VerifyTasks(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) worker = VerifyWorker(self) result = await worker.run_task(payload) return result async def on_app_built(app): env = ServerEnv() lt = env.longtasks if lt: schedule_once(0.1, lt.run) debug('Verify delivery longtasks worker started') def init(): env = ServerEnv() env.longtasks = VerifyTasks( 'redis://127.0.0.1:6379', 'verify_delivery', worker_cnt=1, stuck_seconds=600, max_age_hours=24 ) add_startup(on_app_built) if __name__ == '__main__': webapp(init)