1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 const logger = require('../lib/logger');
\r
18 const Agenda = require('agenda');
\r
19 const mongoData = require('config').mongo;
\r
20 const jobTypes = ['test-execution-job'];
\r
21 const agenda = new Agenda({
\r
23 address: 'mongodb://' + mongoData.username + ':' + mongoData.password + '@' + mongoData.baseUrl + mongoData.dbOtf + '?replicaSet=' + mongoData.replicaSet,
\r
24 collection: 'agenda'
\r
30 initializeAgenda: function () {
\r
31 // Load all job types
\r
32 jobTypes.forEach(type => {
\r
33 require('./jobs/' + type)(agenda);
\r
36 // Wait for the db connection to be established before starting agenda (sync).
\r
37 agenda.on('ready', function () {
\r
38 logger.debug('Agenda successfully established a connection to MongoDB.');
\r
40 // agenda.processEvery('0.001 seconds');
\r
43 async function graceful () {
\r
44 await agenda.stop();
\r
48 process.on('SIGTERM', graceful);
\r
49 process.on('SIGINT', graceful);
\r