| 1234567891011121314151617181920212223242526272829303132333435 |
- // P93:低频长时等待"数据重算"完成 —— 每 60s 破缓存探测;成功(200 且数据量正常)或任务结束即退出
- const GW = 'http://106.120.102.238:28084'
- const t0 = Date.now()
- const st = () => ((Date.now() - t0) / 1000 / 60).toFixed(1).padStart(5) + 'm'
- const bust = 'ts=' + Date.now()
- async function get(path) {
- try {
- const r = await fetch(GW + path + (path.includes('?') ? '&' : '?') + bust + Math.random(), {
- headers: { 'Cache-Control': 'no-cache' },
- })
- const b = await r.text()
- return { status: r.status, len: b.length, txt: b }
- } catch (e) { return { status: 0, len: 0, txt: String(e) } }
- }
- let last = null
- for (let i = 0; i < 120; i++) {
- const f = await get('/api/fleet')
- const s = await get('/ops/api/state')
- let j = null
- try { j = JSON.parse(s.txt) } catch { /* ignore */ }
- const job = (j && j.job) || {}
- const tail = (job.log_tail || []).slice(-1)[0] || ''
- console.log(st() + ' fleet=' + f.status + '(' + f.len + 'B) job=' + (job.status || '?') + ' rc=' + (job.rc ?? '-') + ' · ' + String(tail).trim().slice(0, 110))
- last = { f, job }
- if (f.status === 200 && f.len > 50000) { console.log('✅ 数据已恢复(fleet 200 · ' + f.len + ' B)—— 可以复跑判据'); break }
- if (job.rc !== null && job.rc !== undefined) {
- console.log('⚠️ 任务已结束 rc=' + job.rc + '(' + (job.status || '') + ')')
- for (const l of (job.log_tail || []).slice(-12)) console.log(' ' + String(l).slice(0, 190))
- break
- }
- await new Promise((r) => setTimeout(r, 60000))
- }
- console.log('END ' + st() + ' fleet=' + (last ? last.f.status : '?') + '/' + (last ? last.f.len : '?') + 'B')
|