node-opcua-client
Version:
pure nodejs OPCUA SDK - module client
17 lines (14 loc) • 685 B
text/typescript
const LONG_EVENT_HANDLER = process.env.NODEOPCUA_LONG_EVENT_HANDLER ? parseFloat(process.env.NODEOPCUA_LONG_EVENT_HANDLER) : 100; // how long a write can take before we log a warning
const convertHrtimeToMilliseconds = (hrtime: [number, number]) => {
const seconds = hrtime[0];
const nanoseconds = hrtime[1];
return seconds * 1e3 + nanoseconds * 1e-6;
};
export function detectLongOperation(lambda: () => void, onLongOperation: (duration: number) => void): void {
const start = process.hrtime();
lambda();
const duration = convertHrtimeToMilliseconds(process.hrtime(start));
if (duration > LONG_EVENT_HANDLER) {
onLongOperation(duration);
}
}