-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathapp.js
More file actions
37 lines (28 loc) · 1021 Bytes
/
app.js
File metadata and controls
37 lines (28 loc) · 1021 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var Agenda = require('agenda');
var config = require('./config');
// jobs
var pulse = require('./source/jobs/pulse');
var mixpanel = require('./source/jobs/mixpanel');
var indexFeed = require('./source/jobs/indexFeed');
// helpers
var logger = require('./source/utils/logger');
var timing = require('./source/utils/timing');
var agenda = new Agenda({db: {address: config.connection, collection: 'jobs', defaultConcurrency: 1, maxConcurrency: 1} });
agenda.purge(function () {
pulse(agenda);
// mixpanel(agenda);
indexFeed(agenda);
agenda.start();
});
agenda.on('start', function (job) {
timing.start(job.attrs.name);
logger.info({message: 'job started', job: job.attrs.name });
});
agenda.on('success', function (job) {
var duration = timing.finish(job.attrs.name);
logger.success({message: 'job compeleted', job: job.attrs.name, duration: duration.asMilliseconds()});
});
agenda.on('fail', function (err, job) {
logger.error({message: 'job failed', job: job.attrs.name, err: err});
});
agenda.start();