Browse Source

added logging to settimeout functions

bugfix/timeout-logging
Gonzalo Javier Aune 5 years ago
parent
commit
783b63bd6e
  1. 8
      api/grpc/index.ts
  2. 9
      api/helpers.ts
  3. 18
      api/hub.ts
  4. 13
      api/network/modify.ts
  5. 7
      api/network/send.ts
  6. 10
      api/utils/timers.ts
  7. 7
      api/utils/tribes.ts
  8. 3
      app.ts
  9. 6
      dist/api/grpc/index.js
  10. 2
      dist/api/grpc/index.js.map
  11. 7
      dist/api/helpers.js
  12. 2
      dist/api/helpers.js.map
  13. 10
      dist/api/hub.js
  14. 2
      dist/api/hub.js.map
  15. 7
      dist/api/network/modify.js
  16. 2
      dist/api/network/modify.js.map
  17. 7
      dist/api/network/send.js
  18. 2
      dist/api/network/send.js.map
  19. 10
      dist/api/utils/timers.js
  20. 2
      dist/api/utils/timers.js.map
  21. 7
      dist/api/utils/tribes.js
  22. 2
      dist/api/utils/tribes.js.map
  23. 3
      dist/app.js
  24. 2
      dist/app.js.map

8
api/grpc/index.ts

@ -12,7 +12,7 @@ const constants = require(path.join(__dirname,'../../config/constants.json'))
const ERR_CODE_UNAVAILABLE = 14
const ERR_CODE_STREAM_REMOVED = 2
export function subscribeInvoices(parseKeysendInvoice) {
export function subscribeInvoices(parseKeysendInvoice) {
return new Promise(async(resolve,reject)=>{
const lightning = await loadLightning()
@ -109,8 +109,11 @@ export function subscribeInvoices(parseKeysendInvoice) {
i = 0
reconnectToLND(Math.random())
})
const start = process.hrtime();
setTimeout(()=>{
resolve(null)
const end = process.hrtime(start);
console.log(`subscribeInvoice callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
},100)
})
}
@ -126,10 +129,13 @@ async function reconnectToLND(innerCtx:number){
const now = moment().format('YYYY-MM-DD HH:mm:ss').trim();
console.log(`=> [lnd] reconnected! ${now}`)
} catch(e) {
const start = process.hrtime();
setTimeout(async()=>{ // retry each 2 secs
if(ctx===innerCtx) { // if another retry fires, then this will not run
await reconnectToLND(innerCtx)
}
const end = process.hrtime(start);
console.log(`reconnectToLND index.ts callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
},2000)
}
}

9
api/helpers.ts

@ -21,7 +21,7 @@ export const findOrCreateChat = async (params) => {
// find by uuid
chat = await models.Chat.findOne({ where:{uuid} })
if(!chat){ // no chat! create new
chat = await models.Chat.create({
uuid: uuid,
@ -128,7 +128,12 @@ export async function findOrCreateChatByUUID(chat_uuid, contactIds) {
}
export async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms))
const start = process.hrtime();
return new Promise(resolve => setTimeout(function() {
resolve()
const end = process.hrtime(start);
console.log(`sleep callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
}, ms))
}
export async function parseReceiveParams(payload) {

18
api/hub.ts

@ -43,7 +43,7 @@ const checkInviteHub = async (params = {}) => {
if(invite.invoice) updateObj.invoice = invite.invoice
dbInvite.update(updateObj)
socket.sendJson({
type: 'invite',
response: jsonUtils.inviteToJson(dbInvite)
@ -59,7 +59,7 @@ const checkInviteHub = async (params = {}) => {
var contactJson = jsonUtils.contactToJson(contact)
contactJson.invite = jsonUtils.inviteToJson(dbInvite)
socket.sendJson({
type: 'contact',
response: contactJson
@ -194,7 +194,7 @@ const createInviteInHub = (params, onSuccess, onFailure) => {
}
const sendNotification = async (chat, name, type) => {
let message = `You have a new message from ${name}`
if(type==='invite'){
message = `Your invite to ${name} is ready`
@ -255,7 +255,7 @@ function triggerNotification(params){
.then(res => res.json())
.then(json => {
// console.log('[hub notification]', json)
})
})
}
export {
@ -285,8 +285,16 @@ function debounce(func, id, delay) {
if(bounceTimeouts[id]) clearTimeout(bounceTimeouts[id])
if(!tribeCounts[id]) tribeCounts[id]=0
tribeCounts[id]+=1
const start = process.hrtime();
bounceTimeouts[id] = setTimeout(() => {
func.apply(context, args)
setTimeout(()=> tribeCounts[id]=0, 15)
const nStart = process.hrtime();
setTimeout(()=> function() {
tribeCounts[id]=0
const end = process.hrtime(nStart);
console.log(`debounce-in callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
}, 15)
const end = process.hrtime(start);
console.log(`debounce callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
}, delay)
}

13
api/network/modify.ts

@ -4,7 +4,7 @@ import {parseLDAT} from '../utils/ldat'
import * as rsa from '../crypto/rsa'
import * as crypto from 'crypto'
import * as meme from '../utils/meme'
import * as FormData from 'form-data'
import * as FormData from 'form-data'
import { models } from '../models'
import * as RNCryptor from 'jscryptor'
import {sendMessage} from './send'
@ -137,7 +137,7 @@ export async function sendFinalMemeIfFirstPurchaser(payload, chat, sender){
...chat.dataValues,
contactIds:[ogPurchaser.id],
},
type:msgtypes.purchase_accept,
type:msgtypes.purchase_accept,
message:{
...termsAndKey,
mediaType: typ,
@ -158,7 +158,12 @@ function fillmsg(full, props){
}
async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms))
const start = process.hrtime();
return new Promise(resolve => setTimeout(function() {
resolve()
const end = process.hrtime(start);
console.log(`sleep modify callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
}, ms))
}
export async function downloadAndUploadAndSaveReturningTermsAndKey(payload, chat, sender, injectedAmount?:number){
@ -179,7 +184,7 @@ export async function downloadAndUploadAndSaveReturningTermsAndKey(payload, chat
const buf = await r.buffer()
const decMediaKey = rsa.decrypt(chat.groupPrivateKey, key)
const imgBuf = RNCryptor.Decrypt(buf.toString('base64'), decMediaKey)
const newKey = crypto.randomBytes(20).toString('hex')

7
api/network/send.ts

@ -165,7 +165,12 @@ async function asyncForEach(array, callback) {
}
}
async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms))
const start = process.hrtime();
return new Promise(resolve => setTimeout(function() {
resolve()
const end = process.hrtime(start);
console.log(`sleep send callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
}, ms))
}
// function urlBase64FromHex(ascii){

10
api/utils/timers.ts

@ -41,7 +41,12 @@ export function setTimer(name:string, when:number, cb){
if(ms<0) {
cb() // fire right away if its already passed
} else {
timerz[name] = setTimeout(cb, ms)
const start = process.hrtime();
timerz[name] = setTimeout(function() {
cb()
const end = process.hrtime(start);
console.log(`connectToLND callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
}, ms)
}
}
function makeName(t){
@ -54,8 +59,11 @@ export async function reloadTimers(){
timers && timers.forEach((t,i)=>{
const name = makeName(t)
setTimer(name, t.millis, async ()=>{
const start = process.hrtime();
setTimeout(()=>{
payBack(t)
const end = process.hrtime(start);
console.log(`reloadTimers callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
},i*999) // dont do all at once
})
})

7
api/utils/tribes.ts

@ -31,7 +31,12 @@ export async function connect(onMessage) {
updateTribeStats(info.identity_pubkey)
})
client.on('close', function (e) {
setTimeout(() => reconnect(), 2000)
const start = process.hrtime();
setTimeout(() => function() {
reconnect()
const end = process.hrtime(start);
console.log(`connect callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
}, 2000)
})
client.on('error', function (e) {
console.log('[tribes] error: ', e.message || e)

3
app.ts

@ -35,8 +35,11 @@ async function connectToLND(){
if(e.details) {
console.log(`=> [lnd] error details: ${e.details}`)
}
const start = process.hrtime();
setTimeout(async()=>{ // retry each 2 secs
await connectToLND()
const end = process.hrtime(start);
console.log(`connectToLND callback executed after ${end[0]}s and ${end[1]/Math.pow(10,9)}ms`);
},2000)
}
}

6
dist/api/grpc/index.js

@ -114,8 +114,11 @@ function subscribeInvoices(parseKeysendInvoice) {
i = 0;
reconnectToLND(Math.random());
});
const start = process.hrtime();
setTimeout(() => {
resolve(null);
const end = process.hrtime(start);
console.log(`subscribeInvoice callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, 100);
}));
}
@ -133,10 +136,13 @@ function reconnectToLND(innerCtx) {
console.log(`=> [lnd] reconnected! ${now}`);
}
catch (e) {
const start = process.hrtime();
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
if (ctx === innerCtx) { // if another retry fires, then this will not run
yield reconnectToLND(innerCtx);
}
const end = process.hrtime(start);
console.log(`reconnectToLND index.ts callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}), 2000);
}
});

2
dist/api/grpc/index.js.map

File diff suppressed because one or more lines are too long

7
dist/api/helpers.js

@ -139,7 +139,12 @@ function findOrCreateChatByUUID(chat_uuid, contactIds) {
exports.findOrCreateChatByUUID = findOrCreateChatByUUID;
function sleep(ms) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise(resolve => setTimeout(resolve, ms));
const start = process.hrtime();
return new Promise(resolve => setTimeout(function () {
resolve();
const end = process.hrtime(start);
console.log(`sleep callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, ms));
});
}
exports.sleep = sleep;

2
dist/api/helpers.js.map

File diff suppressed because one or more lines are too long

10
dist/api/hub.js

@ -265,9 +265,17 @@ function debounce(func, id, delay) {
if (!tribeCounts[id])
tribeCounts[id] = 0;
tribeCounts[id] += 1;
const start = process.hrtime();
bounceTimeouts[id] = setTimeout(() => {
func.apply(context, args);
setTimeout(() => tribeCounts[id] = 0, 15);
const nStart = process.hrtime();
setTimeout(() => function () {
tribeCounts[id] = 0;
const end = process.hrtime(nStart);
console.log(`debounce-in callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, 15);
const end = process.hrtime(start);
console.log(`debounce callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, delay);
}
//# sourceMappingURL=hub.js.map

2
dist/api/hub.js.map

File diff suppressed because one or more lines are too long

7
dist/api/network/modify.js

@ -153,7 +153,12 @@ function fillmsg(full, props) {
}
function sleep(ms) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise(resolve => setTimeout(resolve, ms));
const start = process.hrtime();
return new Promise(resolve => setTimeout(function () {
resolve();
const end = process.hrtime(start);
console.log(`sleep modify callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, ms));
});
}
function downloadAndUploadAndSaveReturningTermsAndKey(payload, chat, sender, injectedAmount) {

2
dist/api/network/modify.js.map

File diff suppressed because one or more lines are too long

7
dist/api/network/send.js

@ -167,7 +167,12 @@ function asyncForEach(array, callback) {
}
function sleep(ms) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise(resolve => setTimeout(resolve, ms));
const start = process.hrtime();
return new Promise(resolve => setTimeout(function () {
resolve();
const end = process.hrtime(start);
console.log(`sleep send callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, ms));
});
}
// function urlBase64FromHex(ascii){

2
dist/api/network/send.js.map

File diff suppressed because one or more lines are too long

10
dist/api/utils/timers.js

@ -63,7 +63,12 @@ function setTimer(name, when, cb) {
cb(); // fire right away if its already passed
}
else {
timerz[name] = setTimeout(cb, ms);
const start = process.hrtime();
timerz[name] = setTimeout(function () {
cb();
const end = process.hrtime(start);
console.log(`connectToLND callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, ms);
}
}
exports.setTimer = setTimer;
@ -78,8 +83,11 @@ function reloadTimers() {
timers && timers.forEach((t, i) => {
const name = makeName(t);
setTimer(name, t.millis, () => __awaiter(this, void 0, void 0, function* () {
const start = process.hrtime();
setTimeout(() => {
payBack(t);
const end = process.hrtime(start);
console.log(`reloadTimers callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, i * 999); // dont do all at once
}));
});

2
dist/api/utils/timers.js.map

@ -1 +1 @@
{"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../api/utils/timers.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../api/utils/timers.ts"],"names":[],"mappings":"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"}

7
dist/api/utils/tribes.js

@ -39,7 +39,12 @@ function connect(onMessage) {
updateTribeStats(info.identity_pubkey);
});
client.on('close', function (e) {
setTimeout(() => reconnect(), 2000);
const start = process.hrtime();
setTimeout(() => function () {
reconnect();
const end = process.hrtime(start);
console.log(`connect callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}, 2000);
});
client.on('error', function (e) {
console.log('[tribes] error: ', e.message || e);

2
dist/api/utils/tribes.js.map

File diff suppressed because one or more lines are too long

3
dist/app.js

@ -43,8 +43,11 @@ function connectToLND() {
if (e.details) {
console.log(`=> [lnd] error details: ${e.details}`);
}
const start = process.hrtime();
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
yield connectToLND();
const end = process.hrtime(start);
console.log(`connectToLND callback executed after ${end[0]}s and ${end[1] / Math.pow(10, 9)}ms`);
}), 2000);
}
});

2
dist/app.js.map

@ -1 +1 @@
{"version":3,"file":"app.js","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"app.js","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"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"}
Loading…
Cancel
Save