update
This commit is contained in:
+14
-5
@@ -129,13 +129,22 @@ def skland_sign_in_thread():
|
||||
finally:
|
||||
ark_back.logger.info('Data Retrieve Stopped')
|
||||
|
||||
logger = LoggerClass().get_log(logging.INFO)
|
||||
ark_back = ArkHelperBackend(logger=logger)
|
||||
# ark_back.update_gacha_data()
|
||||
# ark_back.update_payment_data()
|
||||
threading.Thread(target=skland_sign_in_thread).start()
|
||||
threading.Thread(target=data_retrieve_thread).start()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print('start')
|
||||
logger = LoggerClass().get_log(logging.INFO)
|
||||
ark_back = ArkHelperBackend(logger=logger)
|
||||
ark_back.update_payment_data()
|
||||
threading.Thread(target=skland_sign_in_thread).start()
|
||||
threading.Thread(target=data_retrieve_thread).start()
|
||||
ark_back.skland_sign_new()
|
||||
# logger = LoggerClass().get_log(logging.INFO)
|
||||
# ark_back = ArkHelperBackend(logger=logger)
|
||||
# ark_back.update_gacha_data()
|
||||
# ark_back.update_payment_data()
|
||||
# threading.Thread(target=skland_sign_in_thread).start()
|
||||
# threading.Thread(target=data_retrieve_thread).start()
|
||||
app.run(host="192.168.195.194", port=59001)
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ class ArkHelperBackend:
|
||||
def data_retrieve(self):
|
||||
self.refresh_user_token()
|
||||
# self.update_payment_data()
|
||||
self.update_gacha_data()
|
||||
# self.update_gacha_data()
|
||||
|
||||
def show_data(self):
|
||||
gacha_data = {user: content['gacha'] for user, content in self.user_data_dict.items()}
|
||||
@@ -206,7 +206,18 @@ class ArkHelperBackend:
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
ak_back = ArkHelperBackend()
|
||||
ak_back.update_gacha_data()
|
||||
# ak_back = ArkHelperBackend()
|
||||
# ak_back.update_gacha_data()
|
||||
# ak_back.update_payment_data()
|
||||
ak_back.skland_sign_new()
|
||||
# ak_back.skland_sign_new()
|
||||
|
||||
login_url = 'https://ak.hypergryph.com/user/login'
|
||||
session = requests.session()
|
||||
session.get(login_url)
|
||||
login_data = json.dumps({"phone": '18021026530', "password": 'Mrfz1790990971'})
|
||||
response = session.post('https://as.hypergryph.com/user/auth/v1/token_by_phone_password', data=login_data,
|
||||
headers={"Content-Type": "application/json"})
|
||||
token_data = json.loads(response.text)['data']['token']
|
||||
save_cookie = response.cookies
|
||||
|
||||
print('done')
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
import subprocess
|
||||
import time
|
||||
import socket
|
||||
import os
|
||||
import logging
|
||||
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
from src.My_Logger.project_logger import LoggerClass
|
||||
|
||||
LOG_PATH = Path(__file__).parent / 'logs'
|
||||
|
||||
|
||||
def is_port_in_use(port: int) -> bool:
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
return s.connect_ex(('192.168.195.194', port)) == 0
|
||||
|
||||
|
||||
def start_server():
|
||||
"""
|
||||
launch a micro service using gunicorn
|
||||
:return:
|
||||
"""
|
||||
launch_file_name = 'run_service_backend' # file name of the entrance point
|
||||
pid_path = LOG_PATH / 'pid.txt'
|
||||
|
||||
IP = '192.168.195.194'
|
||||
PORT = 59001
|
||||
WORKER = 1
|
||||
TIME_OUT = 60
|
||||
THREADS = 5
|
||||
logger = LoggerClass().get_log(logging.INFO)
|
||||
|
||||
if is_port_in_use(PORT):
|
||||
logger.error(f'Port {PORT} already in use')
|
||||
return
|
||||
|
||||
now = datetime.now()
|
||||
|
||||
cmd = [
|
||||
"nohup",
|
||||
"/home/armor/anaconda3/envs/py311/bin/gunicorn",
|
||||
"--threads", str(THREADS),
|
||||
"--workers", str(WORKER),
|
||||
"--bind", f"{IP}:{PORT}", f"{launch_file_name}:app",
|
||||
"--timeout", str(TIME_OUT),
|
||||
"--pid", pid_path
|
||||
]
|
||||
stdout_file = LOG_PATH / f"console_{now.year}-{now.month}-{now.day}.log"
|
||||
pid = subprocess.Popen(cmd, stdout=stdout_file.open('a'), stderr=subprocess.STDOUT, close_fds=True, start_new_session=True).pid
|
||||
time.sleep(5)
|
||||
|
||||
if not is_port_in_use(PORT) or not os.path.exists(pid_path) or str(pid) != pid_path.read_text().strip():
|
||||
logger.error(f'Failed to start server, check {stdout_file} and {pid_path}')
|
||||
print(f">> tail {stdout_file}")
|
||||
subprocess.run(["tail", str(stdout_file)])
|
||||
return
|
||||
|
||||
info_str = f"Server started"
|
||||
logger.info(info_str)
|
||||
logger.info(f"server running at {IP}:{PORT} with pid {pid}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
start_server()
|
||||
@@ -0,0 +1,27 @@
|
||||
import os
|
||||
import psutil
|
||||
import signal
|
||||
|
||||
|
||||
def stop_server(port):
|
||||
# 遍历当前所有运行的进程
|
||||
for proc in psutil.process_iter(attrs=['pid', 'name']):
|
||||
try:
|
||||
# 查找进程监听的所有连接
|
||||
for conn in proc.connections(kind='inet'):
|
||||
if conn.laddr.port == port:
|
||||
print(f"Killing process {proc.info['name']} (PID: {proc.info['pid']}) on port {port}")
|
||||
os.kill(proc.info['pid'], signal.SIGTERM)
|
||||
return True
|
||||
except (psutil.NoSuchProcess, psutil.AccessDenied):
|
||||
continue
|
||||
return False
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
PORT = 59001
|
||||
if stop_server(PORT):
|
||||
print(f"Process on port {PORT} has been terminated.")
|
||||
else:
|
||||
print(f"No process found on port {PORT}.")
|
||||
Reference in New Issue
Block a user