Round 4 fixes: scheduler DB save check, empty validation_targets, proxy list page fallback, scheduler frontend state sync, tests
This commit is contained in:
@@ -16,31 +16,41 @@ export function useScheduler() {
|
||||
}
|
||||
}
|
||||
|
||||
async function startScheduler(onSuccess) {
|
||||
async function startScheduler(onSuccess, onError) {
|
||||
schedulerLoading.value = true
|
||||
try {
|
||||
const response = await schedulerService.start()
|
||||
if (response.code === 200) {
|
||||
schedulerRunning.value = true
|
||||
onSuccess?.('自动验证已启动')
|
||||
schedulerRunning.value = response.data.running
|
||||
if (response.data.running) {
|
||||
onSuccess?.('自动验证已启动')
|
||||
} else {
|
||||
onError?.('启动调度器失败')
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('启动调度器失败:', error)
|
||||
onError?.('启动调度器失败')
|
||||
} finally {
|
||||
schedulerLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
async function stopScheduler(onSuccess) {
|
||||
async function stopScheduler(onSuccess, onError) {
|
||||
schedulerLoading.value = true
|
||||
try {
|
||||
const response = await schedulerService.stop()
|
||||
if (response.code === 200) {
|
||||
schedulerRunning.value = false
|
||||
onSuccess?.('自动验证已停止')
|
||||
schedulerRunning.value = response.data.running
|
||||
if (!response.data.running) {
|
||||
onSuccess?.('自动验证已停止')
|
||||
} else {
|
||||
onError?.('停止调度器失败')
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('停止调度器失败:', error)
|
||||
onError?.('停止调度器失败')
|
||||
} finally {
|
||||
schedulerLoading.value = false
|
||||
}
|
||||
|
||||
@@ -202,6 +202,10 @@ async function fetchProxies() {
|
||||
|
||||
if (!success) {
|
||||
ElMessage.error('获取代理列表失败')
|
||||
} else if (proxyStore.proxies.length === 0 && currentPage.value > 1) {
|
||||
// 当前页无数据时自动回退一页
|
||||
currentPage.value -= 1
|
||||
return fetchProxies()
|
||||
}
|
||||
} catch (error) {
|
||||
if (error.name === 'AbortError') {
|
||||
|
||||
@@ -290,11 +290,17 @@ async function fetchSettings() {
|
||||
|
||||
// ==================== 调度器控制 ====================
|
||||
async function handleStartScheduler() {
|
||||
await startScheduler((msg) => ElMessage.success(msg))
|
||||
await startScheduler(
|
||||
(msg) => ElMessage.success(msg),
|
||||
(msg) => ElMessage.error(msg)
|
||||
)
|
||||
}
|
||||
|
||||
async function handleStopScheduler() {
|
||||
await stopScheduler((msg) => ElMessage.success(msg))
|
||||
await stopScheduler(
|
||||
(msg) => ElMessage.success(msg),
|
||||
(msg) => ElMessage.error(msg)
|
||||
)
|
||||
}
|
||||
|
||||
async function handleValidateNow() {
|
||||
|
||||
Reference in New Issue
Block a user