feat: job
This commit is contained in:
@@ -85,7 +85,7 @@ const mock = {
|
|||||||
};
|
};
|
||||||
async function mine (job = mock, done = mock) {
|
async function mine (job = mock, done = mock) {
|
||||||
//todo: 程序内检查是否可以执行,保证不会启动时错误的自动执行一次
|
//todo: 程序内检查是否可以执行,保证不会启动时错误的自动执行一次
|
||||||
mylog.info('[Schedule Job] 开始定时计算作业...');
|
mylog.info('[Schedule Job] 挖矿程序 开始定时计算作业...');
|
||||||
let currentIndex = await system.findOne({
|
let currentIndex = await system.findOne({
|
||||||
key: 'userIndex4job'
|
key: 'userIndex4job'
|
||||||
}).exec();
|
}).exec();
|
||||||
@@ -121,6 +121,31 @@ async function mine (job = mock, done = mock) {
|
|||||||
mylog.info('收益计算分配完成');
|
mylog.info('收益计算分配完成');
|
||||||
// done('收益计算分配完成');
|
// 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 = [
|
const jobs = [
|
||||||
{
|
{
|
||||||
name: 'mine',
|
name: 'mine',
|
||||||
@@ -133,6 +158,18 @@ const jobs = [
|
|||||||
},
|
},
|
||||||
skipImmediate: true,
|
skipImmediate: true,
|
||||||
timezone: "ETC/GMT+8"
|
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) {
|
function mountJobs (Job) {
|
||||||
|
|||||||
Reference in New Issue
Block a user