47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
#!/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)
|