Changeset View
Changeset View
Standalone View
Standalone View
keyserver/src/cron/cron.js
Show All 21 Lines | |||||
} from '../deleters/session-deleters.js'; | } from '../deleters/session-deleters.js'; | ||||
import { deleteStaleSIWENonceEntries } from '../deleters/siwe-nonce-deleters.js'; | import { deleteStaleSIWENonceEntries } from '../deleters/siwe-nonce-deleters.js'; | ||||
import { deleteInaccessibleThreads } from '../deleters/thread-deleters.js'; | import { deleteInaccessibleThreads } from '../deleters/thread-deleters.js'; | ||||
import { deleteExpiredUpdates } from '../deleters/update-deleters.js'; | import { deleteExpiredUpdates } from '../deleters/update-deleters.js'; | ||||
import { deleteUnassignedUploads } from '../deleters/upload-deleters.js'; | import { deleteUnassignedUploads } from '../deleters/upload-deleters.js'; | ||||
if (cluster.isMaster) { | if (cluster.isMaster) { | ||||
schedule.scheduleJob( | schedule.scheduleJob( | ||||
'30 3 * * *', // every day at 3:30 AM Pacific Time | '30 3 * * *', // every day at 3:30 AM in the keyserver's timezone | ||||
async () => { | async () => { | ||||
try { | try { | ||||
// Do everything one at a time to reduce load since we're in no hurry, | // Do everything one at a time to reduce load since we're in no hurry, | ||||
// and since some queries depend on previous ones. | // and since some queries depend on previous ones. | ||||
await deleteExpiredCookies(); | await deleteExpiredCookies(); | ||||
await deleteInaccessibleThreads(); | await deleteInaccessibleThreads(); | ||||
await deleteOrphanedMemberships(); | await deleteOrphanedMemberships(); | ||||
await deleteOrphanedDays(); | await deleteOrphanedDays(); | ||||
Show All 19 Lines | async () => { | ||||
try { | try { | ||||
await backupDB(); | await backupDB(); | ||||
} catch (e) { | } catch (e) { | ||||
console.warn('encountered error while trying to backup database', e); | console.warn('encountered error while trying to backup database', e); | ||||
} | } | ||||
}, | }, | ||||
); | ); | ||||
schedule.scheduleJob( | schedule.scheduleJob( | ||||
'0 3 ? * 0', // every Sunday at 3:00 AM GMT | '0 3 ? * 0', // every Sunday at 3:00 AM in the keyserver's timezone | ||||
async () => { | async () => { | ||||
try { | try { | ||||
await updateAndReloadGeoipDB(); | await updateAndReloadGeoipDB(); | ||||
} catch (e) { | } catch (e) { | ||||
console.warn( | console.warn( | ||||
'encountered error while trying to update GeoIP database', | 'encountered error while trying to update GeoIP database', | ||||
e, | e, | ||||
); | ); | ||||
} | } | ||||
}, | }, | ||||
); | ); | ||||
schedule.scheduleJob( | schedule.scheduleJob( | ||||
'0 0 * * *', // every day at midnight GMT | '0 0 * * *', // every day at midnight in the keyserver's timezone | ||||
async () => { | async () => { | ||||
try { | try { | ||||
if (process.env.RUN_COMM_TEAM_DEV_SCRIPTS) { | if (process.env.RUN_COMM_TEAM_DEV_SCRIPTS) { | ||||
// This is a job that the Comm internal team uses | // This is a job that the Comm internal team uses | ||||
await createDailyUpdatesThread(); | await createDailyUpdatesThread(); | ||||
} | } | ||||
} catch (e) { | } catch (e) { | ||||
console.warn( | console.warn( | ||||
'encountered error while trying to create daily updates thread', | 'encountered error while trying to create daily updates thread', | ||||
e, | e, | ||||
); | ); | ||||
} | } | ||||
}, | }, | ||||
); | ); | ||||
schedule.scheduleJob( | schedule.scheduleJob( | ||||
'0 5 * * *', // every day at 5:00 AM GMT | '0 5 * * *', // every day at 5:00 AM in the keyserver's timezone | ||||
async () => { | async () => { | ||||
try { | try { | ||||
await compareMySQLUsersToIdentityService(); | await compareMySQLUsersToIdentityService(); | ||||
} catch (e) { | } catch (e) { | ||||
console.warn( | console.warn( | ||||
'encountered error while trying to compare users table with ' + | 'encountered error while trying to compare users table with ' + | ||||
'identity service', | 'identity service', | ||||
e, | e, | ||||
); | ); | ||||
} | } | ||||
}, | }, | ||||
); | ); | ||||
} | } |