fix(closing): more proper closing without errors
This commit is contained in:
parent
35157457c7
commit
16164c25d8
@ -181,6 +181,7 @@ class p2p {
|
|||||||
for (const client in this.clients) {
|
for (const client in this.clients) {
|
||||||
this.clients[client]._socket.destroy();
|
this.clients[client]._socket.destroy();
|
||||||
}
|
}
|
||||||
|
this.peers = []
|
||||||
return promise
|
return promise
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -312,7 +312,7 @@ setInterval(() => {
|
|||||||
|
|
||||||
const updateTorrentTrackers = (hash) => {
|
const updateTorrentTrackers = (hash) => {
|
||||||
let maxSeeders = 0, maxLeechers = 0, maxCompleted = 0;
|
let maxSeeders = 0, maxLeechers = 0, maxCompleted = 0;
|
||||||
mysqlSingle.query('UPDATE torrents SET trackersChecked = ? WHERE hash = ?', [Math.floor(Date.now() / 1000), hash], function(err, result) {
|
mysqlSingle.query('UPDATE torrents SET trackersChecked = ? WHERE hash = ?', [Math.floor(Date.now() / 1000), hash], (err, result) => {
|
||||||
if(!result) {
|
if(!result) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
return
|
return
|
||||||
@ -320,6 +320,9 @@ setInterval(() => {
|
|||||||
|
|
||||||
udpTrackers.forEach((tracker) => {
|
udpTrackers.forEach((tracker) => {
|
||||||
getPeersStatisticUDP(tracker.host, tracker.port, hash, ({seeders, completed, leechers}) => {
|
getPeersStatisticUDP(tracker.host, tracker.port, hash, ({seeders, completed, leechers}) => {
|
||||||
|
if(this.closing) // ignore trackers response if app is closing
|
||||||
|
return
|
||||||
|
|
||||||
if(seeders == 0 && completed == 0 && leechers == 0)
|
if(seeders == 0 && completed == 0 && leechers == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -769,13 +772,11 @@ setInterval(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.stop = async (callback) => {
|
this.stop = async (callback) => {
|
||||||
|
this.closing = true
|
||||||
console.log('spider closing...')
|
console.log('spider closing...')
|
||||||
if(upnp)
|
if(upnp)
|
||||||
upnp.ratsUnmap()
|
upnp.ratsUnmap()
|
||||||
|
|
||||||
console.log('closing p2p...')
|
|
||||||
await p2p.close()
|
|
||||||
|
|
||||||
// save feed
|
// save feed
|
||||||
await feed.save()
|
await feed.save()
|
||||||
|
|
||||||
@ -840,6 +841,14 @@ setInterval(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('closing p2p...')
|
||||||
|
// don't listen spider peer appears
|
||||||
|
spider.removeAllListeners('peer')
|
||||||
|
await p2p.close()
|
||||||
|
|
||||||
|
// don't listen complete torrent responses
|
||||||
|
client.removeAllListeners('complete')
|
||||||
|
|
||||||
torrentClient.destroy(() => {
|
torrentClient.destroy(() => {
|
||||||
sphinx.end(() => spider.close(() => {
|
sphinx.end(() => spider.close(() => {
|
||||||
mysqlSingle.destroy()
|
mysqlSingle.destroy()
|
||||||
|
Loading…
Reference in New Issue
Block a user