fix(core): 修复调度队列为空时定时执行被反复调起
This commit is contained in:
@@ -29,6 +29,7 @@ from loguru import logger
|
|||||||
from PySide6.QtCore import QThread, QObject, Signal
|
from PySide6.QtCore import QThread, QObject, Signal
|
||||||
from qfluentwidgets import Dialog
|
from qfluentwidgets import Dialog
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from datetime import datetime
|
||||||
from typing import Dict, Union
|
from typing import Dict, Union
|
||||||
|
|
||||||
from .config import Config
|
from .config import Config
|
||||||
@@ -261,6 +262,14 @@ class TaskManager(QObject):
|
|||||||
f"任务名称:{log[0]},{log[1]["History"].replace("\n","\n ")}\n"
|
f"任务名称:{log[0]},{log[1]["History"].replace("\n","\n ")}\n"
|
||||||
)
|
)
|
||||||
Config.save_history(name, {"Time": time, "History": history})
|
Config.save_history(name, {"Time": time, "History": history})
|
||||||
|
else:
|
||||||
|
Config.save_history(
|
||||||
|
name,
|
||||||
|
{
|
||||||
|
"Time": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
||||||
|
"History": "没有任务被执行",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
self.task_list.pop(name)
|
self.task_list.pop(name)
|
||||||
Config.running_list.remove(name)
|
Config.running_list.remove(name)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ from loguru import logger
|
|||||||
from PySide6.QtWidgets import QWidget
|
from PySide6.QtWidgets import QWidget
|
||||||
from PySide6.QtCore import QTimer
|
from PySide6.QtCore import QTimer
|
||||||
import json
|
import json
|
||||||
import datetime
|
from datetime import datetime
|
||||||
import pyautogui
|
import pyautogui
|
||||||
|
|
||||||
from .config import Config
|
from .config import Config
|
||||||
@@ -73,7 +73,7 @@ class MainTimer(QWidget):
|
|||||||
if info["Time"][f"TimeEnabled_{_}"]
|
if info["Time"][f"TimeEnabled_{_}"]
|
||||||
]
|
]
|
||||||
# 按时间调起代理任务
|
# 按时间调起代理任务
|
||||||
curtime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
|
curtime = datetime.now().strftime("%Y-%m-%d %H:%M")
|
||||||
if (
|
if (
|
||||||
curtime[11:16] in time_set
|
curtime[11:16] in time_set
|
||||||
and curtime != history["Time"][:16]
|
and curtime != history["Time"][:16]
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ from loguru import logger
|
|||||||
from PySide6.QtCore import QObject, Signal, QEventLoop
|
from PySide6.QtCore import QObject, Signal, QEventLoop
|
||||||
import json
|
import json
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import datetime
|
from datetime import datetime, timedelta
|
||||||
import subprocess
|
import subprocess
|
||||||
import shutil
|
import shutil
|
||||||
import time
|
import time
|
||||||
@@ -94,7 +94,7 @@ class MaaManager(QObject):
|
|||||||
"""主进程,运行MAA代理进程"""
|
"""主进程,运行MAA代理进程"""
|
||||||
|
|
||||||
curdate = self.server_date()
|
curdate = self.server_date()
|
||||||
begin_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
begin_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
self.configure()
|
self.configure()
|
||||||
# 检查MAA路径是否可用
|
# 检查MAA路径是否可用
|
||||||
@@ -169,7 +169,7 @@ class MaaManager(QObject):
|
|||||||
# 配置MAA
|
# 配置MAA
|
||||||
self.set_maa(mode_book[j], user[2])
|
self.set_maa(mode_book[j], user[2])
|
||||||
# 记录当前时间
|
# 记录当前时间
|
||||||
start_time = datetime.datetime.now()
|
start_time = datetime.now()
|
||||||
# 创建MAA任务
|
# 创建MAA任务
|
||||||
maa = subprocess.Popen(
|
maa = subprocess.Popen(
|
||||||
[self.maa_exe_path],
|
[self.maa_exe_path],
|
||||||
@@ -199,20 +199,20 @@ class MaaManager(QObject):
|
|||||||
|
|
||||||
# 判断是否超时
|
# 判断是否超时
|
||||||
if len(logs) > 0:
|
if len(logs) > 0:
|
||||||
latest_time = datetime.datetime.now()
|
latest_time = datetime.now()
|
||||||
for _ in range(-1, 0 - len(logs) - 1, -1):
|
for _ in range(-1, 0 - len(logs) - 1, -1):
|
||||||
try:
|
try:
|
||||||
latest_time = datetime.datetime.strptime(
|
latest_time = datetime.strptime(
|
||||||
logs[_][1:20], "%Y-%m-%d %H:%M:%S"
|
logs[_][1:20], "%Y-%m-%d %H:%M:%S"
|
||||||
)
|
)
|
||||||
break
|
break
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
now_time = datetime.datetime.now()
|
now_time = datetime.now()
|
||||||
if (
|
if (
|
||||||
j == 0
|
j == 0
|
||||||
and now_time - latest_time
|
and now_time - latest_time
|
||||||
> datetime.timedelta(
|
> timedelta(
|
||||||
minutes=self.set["RunSet"][
|
minutes=self.set["RunSet"][
|
||||||
"AnnihilationTimeLimit"
|
"AnnihilationTimeLimit"
|
||||||
]
|
]
|
||||||
@@ -220,7 +220,7 @@ class MaaManager(QObject):
|
|||||||
) or (
|
) or (
|
||||||
j == 1
|
j == 1
|
||||||
and now_time - latest_time
|
and now_time - latest_time
|
||||||
> datetime.timedelta(
|
> timedelta(
|
||||||
minutes=self.set["RunSet"]["RoutineTimeLimit"]
|
minutes=self.set["RunSet"]["RoutineTimeLimit"]
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
@@ -338,7 +338,7 @@ class MaaManager(QObject):
|
|||||||
self.set_maa("人工排查_仅切换账号", user[2])
|
self.set_maa("人工排查_仅切换账号", user[2])
|
||||||
|
|
||||||
# 记录当前时间
|
# 记录当前时间
|
||||||
start_time = datetime.datetime.now()
|
start_time = datetime.now()
|
||||||
# 创建MAA任务
|
# 创建MAA任务
|
||||||
maa = subprocess.Popen(
|
maa = subprocess.Popen(
|
||||||
[self.maa_exe_path],
|
[self.maa_exe_path],
|
||||||
@@ -432,7 +432,7 @@ class MaaManager(QObject):
|
|||||||
creationflags=subprocess.CREATE_NO_WINDOW,
|
creationflags=subprocess.CREATE_NO_WINDOW,
|
||||||
)
|
)
|
||||||
# 记录当前时间
|
# 记录当前时间
|
||||||
start_time = datetime.datetime.now()
|
start_time = datetime.now()
|
||||||
|
|
||||||
# 监测MAA运行状态
|
# 监测MAA运行状态
|
||||||
while not self.isInterruptionRequested:
|
while not self.isInterruptionRequested:
|
||||||
@@ -487,7 +487,7 @@ class MaaManager(QObject):
|
|||||||
wait_index = [_[2] for _ in user_list if _[1] == "等待"]
|
wait_index = [_[2] for _ in user_list if _[1] == "等待"]
|
||||||
|
|
||||||
# 保存运行日志
|
# 保存运行日志
|
||||||
end_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
end_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
end_log = (
|
end_log = (
|
||||||
f"任务开始时间:{begin_time},结束时间:{end_time}\n"
|
f"任务开始时间:{begin_time},结束时间:{end_time}\n"
|
||||||
f"已完成数:{len(over_index)},未完成数:{len(error_index) + len(wait_index)}\n\n"
|
f"已完成数:{len(over_index)},未完成数:{len(error_index) + len(wait_index)}\n\n"
|
||||||
@@ -550,9 +550,7 @@ class MaaManager(QObject):
|
|||||||
for entry in f:
|
for entry in f:
|
||||||
if not if_log_start:
|
if not if_log_start:
|
||||||
try:
|
try:
|
||||||
entry_time = datetime.datetime.strptime(
|
entry_time = datetime.strptime(entry[1:20], "%Y-%m-%d %H:%M:%S")
|
||||||
entry[1:20], "%Y-%m-%d %H:%M:%S"
|
|
||||||
)
|
|
||||||
if entry_time > start_time:
|
if entry_time > start_time:
|
||||||
if_log_start = True
|
if_log_start = True
|
||||||
logs.append(entry)
|
logs.append(entry)
|
||||||
@@ -1015,7 +1013,7 @@ class MaaManager(QObject):
|
|||||||
def server_date(self):
|
def server_date(self):
|
||||||
"""获取当前的服务器日期"""
|
"""获取当前的服务器日期"""
|
||||||
|
|
||||||
dt = datetime.datetime.now()
|
dt = datetime.now()
|
||||||
if dt.time() < datetime.datetime.min.time().replace(hour=4):
|
if dt.time() < datetime.min.time().replace(hour=4):
|
||||||
dt = dt - datetime.timedelta(days=1)
|
dt = dt - timedelta(days=1)
|
||||||
return dt.strftime("%Y-%m-%d")
|
return dt.strftime("%Y-%m-%d")
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ from PySide6.QtCore import Qt
|
|||||||
from functools import partial
|
from functools import partial
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List
|
from typing import List
|
||||||
import datetime
|
from datetime import datetime, timedelta
|
||||||
import json
|
import json
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
@@ -1623,7 +1623,7 @@ class MaaSettingBox(QWidget):
|
|||||||
def server_date() -> str:
|
def server_date() -> str:
|
||||||
"""获取当前的服务器日期"""
|
"""获取当前的服务器日期"""
|
||||||
|
|
||||||
dt = datetime.datetime.now()
|
dt = datetime.now()
|
||||||
if dt.time() < datetime.datetime.min.time().replace(hour=4):
|
if dt.time() < datetime.min.time().replace(hour=4):
|
||||||
dt = dt - datetime.timedelta(days=1)
|
dt = dt - timedelta(days=1)
|
||||||
return dt.strftime("%Y-%m-%d")
|
return dt.strftime("%Y-%m-%d")
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"main_version": "4.2.1.1",
|
"main_version": "4.2.1.1",
|
||||||
"updater_version": "1.1.0.1",
|
"updater_version": "1.1.0.1",
|
||||||
"announcement": "\n## 新增功能\n- 调度队列上线,支持MAA多开\n- 公告系统上线\n## 修复BUG\n- 修复手机号码不全时引发的混乱\n- 添加了一堆BUG(确信)\n## 程序优化\n- 界面重构,引入`QFluentWidgets`美化界面",
|
"announcement": "\n## 新增功能\n- 调度队列上线,支持MAA多开 #12\n- 公告系统上线\n## 修复BUG\n- 修复手机号码不全时引发的混乱\n- 添加了一堆BUG(确信)\n## 程序优化\n- 界面重构,引入`QFluentWidgets`美化界面",
|
||||||
"proxy_list": [
|
"proxy_list": [
|
||||||
"",
|
"",
|
||||||
"https://gitproxy.click/",
|
"https://gitproxy.click/",
|
||||||
|
|||||||
Reference in New Issue
Block a user