@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
28 lines (27 loc) • 1.07 kB
JavaScript
import { random } from 'lodash-es';
import getDatabase from '../database/index.js';
import { sendReport } from '../telemetry/index.js';
import { scheduleSynchronizedJob } from '../utils/schedule.js';
import { version } from 'directus/version';
/**
* Schedule the project status job
*/
export default async function schedule() {
const db = getDatabase();
// Schedules a job at a random time of the day to avoid overloading the telemetry server
scheduleSynchronizedJob('project-status', `${random(59)} ${random(23)} * * *`, async () => {
const { project_status, ...ownerInfo } = await db
.select('project_status', 'project_owner', 'project_usage', 'org_name', 'product_updates', 'project_id')
.from('directus_settings')
.first();
if (project_status !== 'pending')
return;
try {
await sendReport({ version, ...ownerInfo });
await db.update('project_status', '').from('directus_settings');
}
catch {
// Empty catch
}
});
}