79 lines
1.5 KiB
JavaScript
79 lines
1.5 KiB
JavaScript
import cron from 'node-cron'
|
|
import { updateDevicesInfo } from './lib/wifiDevices'
|
|
import { User } from './classes/User'
|
|
|
|
import oui from 'oui'
|
|
|
|
import { deleteOldLogs, log, logInfo, logSuccess } from './lib/logger'
|
|
|
|
import { updateUserIdMappings } from './lib/paloalto'
|
|
|
|
logInfo({
|
|
tags: ['cron'],
|
|
message: 'Scheduling tasks...'
|
|
})
|
|
|
|
cron.schedule('*/1 * * * *', async () => {
|
|
logInfo({
|
|
tags: ['cron', 'wifiDevices'],
|
|
message: 'updateDevicesInfo started'
|
|
})
|
|
|
|
const devices = await updateDevicesInfo()
|
|
|
|
logInfo({
|
|
tags: ['cron', 'wifiDevices'],
|
|
message: `updateDevicesInfo updated ${devices} devices`
|
|
})
|
|
|
|
let mappings = 0
|
|
|
|
if (devices > 0) {
|
|
logInfo({
|
|
tags: ['cron', 'user-id'],
|
|
message: `updateUserIdMappings started`
|
|
})
|
|
|
|
mappings = await updateUserIdMappings()
|
|
|
|
logInfo({
|
|
tags: ['cron', 'user-id'],
|
|
message: `updateUserIdMappings updated ${mappings} user-id mappings`
|
|
})
|
|
}
|
|
})
|
|
|
|
cron.schedule(
|
|
'0 0 0 * * *',
|
|
async () => {
|
|
logInfo({
|
|
tags: ['cron', 'user'],
|
|
message: `User.importAllUsers started`
|
|
})
|
|
|
|
const users = await User.importAllUsers()
|
|
|
|
logInfo({
|
|
tags: ['cron', 'user'],
|
|
message: `User.importAllUsers imported ${users} users`
|
|
})
|
|
},
|
|
{}
|
|
)
|
|
|
|
cron.schedule('0 0 0 * * *', async () => {
|
|
await oui.update()
|
|
logSuccess({
|
|
tags: ['cron', 'oui'],
|
|
message: `OUI list updated`
|
|
})
|
|
})
|
|
|
|
cron.schedule('0 0 0 * * *', async () => {
|
|
await deleteOldLogs()
|
|
logSuccess({
|
|
tags: ['cron', 'log'],
|
|
message: `Old logs deleted`
|
|
})
|
|
})
|