#!/usr/local/bin/python3 # -*- coding:utf-8 -*- # @Time : 2018/5/18 3:18 PM # @Author : Swing from tornado.web import RequestHandler import abuyun_renew import statistics import tornado.ioloop import email_util import traceback import json import loop_task class MainHandler(RequestHandler): def get(self, *args, **kwargs): self.write('Hello world') def post(self): self.write('Hello world') class OpenChrome(RequestHandler): def get(self, *args, **kwargs): abuyun_renew.open_chrome() self.write('Hello world') def post(self): self.write('Hello world') class ReCharge(RequestHandler): def get(self, *args, **kwargs): try: abuyun_renew.recharge(is_launch_spider=True) loop_task.loop_start() self.finish(Response().to_json()) except: email_util.send_email('Abuyun renew error', traceback.format_exc()) print('Daily statistic err! reason: ' + traceback.format_exc()) self.finish(Response(False, traceback.format_exc()).to_json()) class DailyStatistic(RequestHandler): def get(self, *args, **kwargs): try: statistics.daily_statistic() self.finish(Response().to_json()) except: email_util.send_email('Daily statistic err', traceback.format_exc()) print('Daily statistic err! reason: ' + traceback.format_exc()) self.finish(Response(False, traceback.format_exc()).to_json()) class LoopTaskStart(RequestHandler): def get(self, *args, **kwargs): try: loop_task.loop_start() self.finish(Response().to_json()) except: print(traceback.format_exc()) class LoopTaskStop(RequestHandler): def get(self, *args, **kwargs): try: loop_task.loop_stop() self.finish(Response().to_json()) except: print(traceback.format_exc()) class Response(object): def __init__(self, success=True, message='ok'): self.success = success self.message = message def to_json(self): return json.dumps(self, default=lambda obj: obj.__dict__, sort_keys=True, indent=4) application = tornado.web.Application([ (r"/openChrome", OpenChrome), (r'/reCharge', ReCharge), (r'/statistic', DailyStatistic), (r'/loopStart', LoopTaskStart), (r'/loopStop', LoopTaskStop), ]) if __name__ == "__main__": application.listen(8888) # print('Tornado start at port: 8888') tornado.ioloop.IOLoop.instance().start()