MCPcopy Create free account
hub / github.com/PrairieLearn/PrairieLearn / init

Function init

cron/index.js:29–89  ·  view source on GitHub ↗
(callback)

Source from the content-addressed store, hash-verified

27
28module.exports = {
29 init(callback) {
30 debug(`init()`);
31 const jobs = [
32 {
33 name: 'autoFinishExams',
34 module: require('./autoFinishExams'),
35 intervalSec: config.cronIntervalAutoFinishExamsSec,
36 },
37 {
38 name: 'errorAbandonedJobs',
39 module: require('./errorAbandonedJobs'),
40 intervalSec: config.cronIntervalErrorAbandonedJobsSec,
41 },
42 {
43 name: 'sendExternalGraderStats',
44 module: require('./sendExternalGraderStats'),
45 intervalSec: 'daily',
46 },
47 {
48 name: 'sendExternalGraderDeadLetters',
49 module: require('./sendExternalGraderDeadLetters'),
50 intervalSec: 'daily',
51 },
52 {
53 name: 'externalGraderLoad',
54 module: require('./externalGraderLoad'),
55 intervalSec: config.cronIntervalExternalGraderLoadSec,
56 },
57 {
58 name: 'serverLoad',
59 module: require('./serverLoad'),
60 intervalSec: config.cronIntervalServerLoadSec,
61 },
62 {
63 name: 'serverUsage',
64 module: require('./serverUsage'),
65 intervalSec: config.cronIntervalServerUsageSec,
66 },
67 {
68 name: 'calculateAssessmentQuestionStats',
69 module: require('./calculateAssessmentQuestionStats'),
70 intervalSec: 'daily',
71 },
72 {
73 name: 'calculateAssessmentMode',
74 module: require('./calculateAssessmentMode'),
75 intervalSec: 'daily',
76 },
77 ];
78 logger.verbose('initializing cron', _.map(jobs, j => _.pick(j, ['name', 'intervalSec'])));
79
80 const jobsByPeriodSec = _.groupBy(jobs, 'intervalSec');
81 _.forEach(jobsByPeriodSec, (jobsList, intervalSec) => {
82 if (intervalSec == 'daily') {
83 this.queueDailyJobs(jobsList);
84 } else {
85 this.queueJobs(jobsList, intervalSec);
86 }

Callers 1

dropzone.jsFile · 0.50

Calls 2

debugFunction · 0.85
callbackFunction · 0.85

Tested by

no test coverage detected