def init(): schedule_job(check_v2_config_job, config.get_v2_config_check_interval()) schedule_job(traffic_job, config.get_traffic_job_interval()) reset_day = config.get_reset_traffic_day() if reset_day <= 0: return now = datetime.now() next_day = now.date() + timedelta(days=1) next_day = datetime.combine(next_day, datetime.min.time()) Timer((next_day - now).seconds + 5, reset_traffic_job).start()
import json from flask import Blueprint, render_template, jsonify, request, Response from flask_babel import gettext from datetime import datetime from base.models import Msg from base.router import base_bp from init import db from util import config, server_info from util.v2_jobs import v2_config_change from v2ray.models import Inbound, Customers, Server v2ray_bp = Blueprint('v2ray', __name__, url_prefix='/v2ray') __check_interval = config.get_v2_config_check_interval() @v2ray_bp.route('/', methods=['GET']) def index(): from init import common_context from util import cmd2node status = json.dumps(server_info.get_status(), ensure_ascii=False) nodesStatus = json.dumps(cmd2node.list_nodes_status(), ensure_ascii=False) return render_template('v2ray/index.html', **common_context, status=status, nodesStatus=nodesStatus) @v2ray_bp.route('/accounts/', methods=['GET'])
def init(): schedule_job(check_v2_config_job, config.get_v2_config_check_interval()) schedule_job(traffic_job, config.get_traffic_job_interval())
def init(): schedule.every().day.at("00:00").do(update_config) schedule_job(check_v2_config_job, config.get_v2_config_check_interval()) schedule_job(traffic_job, config.get_traffic_job_interval())
import threading from apscheduler.triggers.interval import IntervalTrigger from init import db from util import config, v2_util from util.schedule_util import scheduler from v2ray.models import Inbound __lock = threading.Lock() @scheduler.scheduled_job( trigger=IntervalTrigger(seconds=config.get_v2_config_check_interval())) def check_v2_config_job(): with __lock: v2_config = v2_util.gen_v2_config_from_db() v2_util.write_v2_config(v2_config) @scheduler.scheduled_job( trigger=IntervalTrigger(seconds=config.get_traffic_job_interval())) def traffic_job(): with __lock: if not v2_util.is_running(): return traffics = v2_util.get_inbounds_traffic() if not traffics: return for traffic in traffics: upload = int(traffic.get('uplink', 0))
def init(): schedule_job(check_v2_config_job, config.get_v2_config_check_interval()) schedule_job(traffic_job, config.get_traffic_job_interval()) schedule_job(check_v2ay_alive_job, 40) schedule_job(check_v2ray_version_job, 1800)