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: mongoData.connectionString,
\r
24 collection: 'agenda'
\r
33 initializeAgenda: function () {
\r
34 // Load all job types
\r
35 jobTypes.forEach(type => {
\r
36 require('./jobs/' + type)(agenda);
\r
39 // Wait for the db connection to be established before starting agenda (sync).
\r
40 agenda.on('ready', function () {
\r
41 logger.debug('Agenda successfully established a connection to MongoDB.');
\r
43 // agenda.processEvery('0.001 seconds');
\r
46 async function graceful () {
\r
47 await agenda.stop();
\r
51 process.on('SIGTERM', graceful);
\r
52 process.on('SIGINT', graceful);
\r