1
0
mirror of https://github.com/tormachris/cf-workers-status-page.git synced 2024-11-23 22:45:43 +01:00

feat(cron): detect and save location of last check

This commit is contained in:
Adam Janis 2020-11-15 15:40:57 +01:00
parent bc0d52e89e
commit c33beabef6
4 changed files with 13 additions and 10 deletions

View File

@ -2,5 +2,5 @@ import { processCronTrigger } from '../../src/functions/cronTrigger'
export default async event => { export default async event => {
// used only for local debugging // used only for local debugging
//return processCronTrigger() //return processCronTrigger(event)
} }

View File

@ -79,12 +79,10 @@ export default function Index({
? config.settings.allmonitorsOperational ? config.settings.allmonitorsOperational
: config.settings.notAllmonitorsOperational} : config.settings.notAllmonitorsOperational}
</div> </div>
{typeof window !== 'undefined' ? ( {kvLastUpdate.metadata && typeof window !== 'undefined' && (
<div className="black-text"> <div className="black-text">
checked {Math.round((Date.now() - kvLastUpdate) / 1000)} sec ago checked {Math.round((Date.now() - kvLastUpdate.value) / 1000)} sec ago (from {kvLastUpdate.metadata.loc})
</div> </div>
) : (
''
)} )}
</div> </div>
</div> </div>

View File

@ -61,11 +61,16 @@ export async function processCronTrigger(event) {
await setKV(kvFailedDayStatusKey, null) await setKV(kvFailedDayStatusKey, null)
} }
} }
// save last check timestamp
await setKV('lastUpdate', Date.now())
} }
await gcMonitors(config)
// save last check timestamp including PoP location
const res = await fetch("https://www.cloudflare.com/cdn-cgi/trace")
const resText = await res.text()
const loc = /loc=([\w]{2})/.exec(resText)[1]
await setKV('lastUpdate', Date.now(), {loc})
// gc monitor statuses
event.waitUntil(gcMonitors(config))
return new Response('OK') return new Response('OK')
} }

View File

@ -11,7 +11,7 @@ export async function getMonitorsHistory() {
} }
export async function getLastUpdate() { export async function getLastUpdate() {
return await getKV('lastUpdate') return await getKVWithMetadata('lastUpdate')
} }
export async function listKV(prefix = '', cacheTtl = false) { export async function listKV(prefix = '', cacheTtl = false) {