Fix stale cursor used on reconnect (#764)
This commit is contained in:
parent
dc8d35fdcf
commit
30850acd8f
@ -22,11 +22,16 @@ function subscribeForever (subscribe) {
|
|||||||
let sub
|
let sub
|
||||||
try {
|
try {
|
||||||
return await new Promise((resolve, reject) => {
|
return await new Promise((resolve, reject) => {
|
||||||
sub = subscribe(resolve, bail)
|
const sub = subscribe(resolve, bail)
|
||||||
if (!sub) {
|
if (!sub) {
|
||||||
return bail(new Error('function passed to subscribeForever must return a subscription object'))
|
return bail(new Error('function passed to subscribeForever must return a subscription object or promise'))
|
||||||
|
}
|
||||||
|
if (sub.then) {
|
||||||
|
// sub is promise
|
||||||
|
sub.then(sub => sub.on('error', reject))
|
||||||
|
} else {
|
||||||
|
sub.on('error', reject)
|
||||||
}
|
}
|
||||||
sub.on('error', reject)
|
|
||||||
})
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
@ -45,13 +50,12 @@ const logEventError = (name, error) => console.error(`error running ${name}`, er
|
|||||||
async function subscribeToDeposits (args) {
|
async function subscribeToDeposits (args) {
|
||||||
const { models, lnd } = args
|
const { models, lnd } = args
|
||||||
|
|
||||||
const [lastConfirmed] = await models.$queryRaw`
|
subscribeForever(async () => {
|
||||||
|
const [lastConfirmed] = await models.$queryRaw`
|
||||||
SELECT "confirmedIndex"
|
SELECT "confirmedIndex"
|
||||||
FROM "Invoice"
|
FROM "Invoice"
|
||||||
ORDER BY "confirmedIndex" DESC NULLS LAST
|
ORDER BY "confirmedIndex" DESC NULLS LAST
|
||||||
LIMIT 1`
|
LIMIT 1`
|
||||||
|
|
||||||
subscribeForever(() => {
|
|
||||||
const sub = subscribeToInvoices({ lnd, confirmed_after: lastConfirmed?.confirmedIndex })
|
const sub = subscribeToInvoices({ lnd, confirmed_after: lastConfirmed?.confirmedIndex })
|
||||||
|
|
||||||
sub.on('invoice_updated', async (inv) => {
|
sub.on('invoice_updated', async (inv) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user