feat: job
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user