feat: job

This commit is contained in:
chaosBreaking
2019-09-29 17:22:48 +08:00
parent fb9b9d4665
commit 9349d6ed86

View File

@@ -85,7 +85,7 @@ const mock = {
};
async function mine (job = mock, done = mock) {
//todo: 程序内检查是否可以执行,保证不会启动时错误的自动执行一次
mylog.info('[Schedule Job] 开始定时计算作业...');
mylog.info('[Schedule Job] 挖矿程序 开始定时计算作业...');
let currentIndex = await system.findOne({
key: 'userIndex4job'
}).exec();
@@ -121,6 +121,31 @@ async function mine (job = mock, done = mock) {
mylog.info('收益计算分配完成');
// done('收益计算分配完成');
}
async function confirm (job = mock, done = mock) {
mylog.info('[Schedule Job] 矿晶确认程序开始执行......');
const unconfirmed = await Fund.find({
'fundList.status': 0
});
mylog.info('共有' + unconfirmed.length + '用户需要确认');
unconfirmed.forEach(async (fund) => {
const len = fund.fundList.length || 0;
let acc = 0;
for (let i = 0; i < len; ++i) {
const fundItem = fund.fundList[i];
if (fundItem && fundItem.status === 0) {
++acc;
await Fund.findByIdAndUpdate(fund.id, {
$set: {
[`fundList.${i}.status`]: 1 // 确认激活
}
});
}
}
mylog.info(`用户${fund.userId} 共更新${acc}`);
job.touch();
});
return done('矿晶确认完成');
}
const jobs = [
{
name: 'mine',
@@ -133,6 +158,18 @@ const jobs = [
},
skipImmediate: true,
timezone: "ETC/GMT+8"
},
{
name: 'confirm',
processor: confirm,
type: 'every',
slot: '0 0/10 * * * *', // 59 */1 * * *
priority: 'highest',
unique: {
id: 'confirm'
},
// skipImmediate: true,
timezone: "ETC/GMT+8"
}
];
function mountJobs (Job) {