27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
'use strict';
|
|
const { inject } = require('../common/Provider');
|
|
const Agenda = require('agenda');
|
|
const mongoose = require('mongoose');
|
|
const mountJobs = require('./jobs');
|
|
const exec = require('child_process').exec;
|
|
|
|
module.exports = () => inject(async function startJob(SysConfig) {
|
|
const { DB_USER_NAME, DB_PASSWD, DB_HOST, DB_PORT, DB_NAME } = SysConfig;
|
|
mylog.info('连接到任务队列数据库...');
|
|
const jobConn = await mongoose.createConnection(`mongodb://${DB_USER_NAME}:${DB_PASSWD}@${DB_HOST}:${DB_PORT}/${DB_NAME}`, {
|
|
useNewUrlParser: true,
|
|
autoReconnect: true,
|
|
useFindAndModify: false,
|
|
useUnifiedTopology: true
|
|
});
|
|
mylog.info('连接到任务队列数据库成功');
|
|
const Job = new Agenda({ mongo: jobConn });
|
|
mountJobs(Job);
|
|
await Job.start();
|
|
mylog.info('任务队列启动...');
|
|
// app.use('/admin/myAgendash', Agendash(Job));
|
|
exec(`npx agendash --db=mongodb://${DB_USER_NAME}:${DB_PASSWD.replace('&', `\\&`)}@${DB_HOST}:${DB_PORT}/${DB_NAME} --collection=agendaJobs --port=6057`);
|
|
mylog.info('agendash启动...');
|
|
return Job;
|
|
});
|