async eachSeries + setTimeout fixes
This commit is contained in:
parent
4eef0897ce
commit
ce50f0a27a
1 changed files with 15 additions and 16 deletions
9
app.js
9
app.js
|
@ -150,6 +150,7 @@ const createOrGetUserId = (username, callback) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const processCompletedDeposits = (callback) => {
|
const processCompletedDeposits = (callback) => {
|
||||||
|
const delay = 2000;
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
(cb) => {
|
(cb) => {
|
||||||
db.query('SELECT C.DepositId, D.Amount, U.Username, U.Balance FROM CompletedDepositConfirmations C JOIN Deposits D ON D.Id = C.DepositId JOIN Users U ON U.Id = C.UserId', cb);
|
db.query('SELECT C.DepositId, D.Amount, U.Username, U.Balance FROM CompletedDepositConfirmations C JOIN Deposits D ON D.Id = C.DepositId JOIN Users U ON U.Id = C.UserId', cb);
|
||||||
|
@ -157,24 +158,22 @@ const processCompletedDeposits = (callback) => {
|
||||||
(res, fields, cb) => {
|
(res, fields, cb) => {
|
||||||
if (res.length > 0) {
|
if (res.length > 0) {
|
||||||
return async.eachSeries(res, (completedDeposit, ecb) => {
|
return async.eachSeries(res, (completedDeposit, ecb) => {
|
||||||
setTimeout(() => {
|
|
||||||
sendPMUsingTemplate('ondeposit.completed', { how_to_use_url: config.howToUseUrl, amount: completedDeposit.Amount, balance: completedDeposit.Balance },
|
sendPMUsingTemplate('ondeposit.completed', { how_to_use_url: config.howToUseUrl, amount: completedDeposit.Amount, balance: completedDeposit.Balance },
|
||||||
'Deposit completed!', completedDeposit.Username, (err) => {
|
'Deposit completed!', completedDeposit.Username, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
return ecb(err, null);
|
return setTimeout(ecb, delay, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove the entry from the DB
|
// remove the entry from the DB
|
||||||
return db.query('DELETE FROM CompletedDepositConfirmations WHERE DepositId = ?', [completedDeposit.DepositId], (ierr) => {
|
return db.query('DELETE FROM CompletedDepositConfirmations WHERE DepositId = ?', [completedDeposit.DepositId], (ierr) => {
|
||||||
if (ierr) {
|
if (ierr) {
|
||||||
return ecb(ierr, null);
|
return setTimeout(ecb, delay, ierr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// success
|
// success
|
||||||
return ecb(null, true);
|
return setTimeout(ecb, delay, null, true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}, 2000); // Wait 2 seconds between each request (if there are multiple to send)
|
|
||||||
// TODO: Implement inserting messages into a pending message queue instead
|
// TODO: Implement inserting messages into a pending message queue instead
|
||||||
}, cb);
|
}, cb);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue