@smarterservices/smarterclock
v2.0.1
Published
store of delta values between ntp time and local time to get an accurate sync time
Downloads
20
Readme
SmarterClock
Used to ensure the time used is in sync across distributed systems. The sync is achived by the following process:
- Fetches the time from an NTP server.
- Adjusts for network latency and transfer time
- Computes the delta between the NTP server and the system clock and stores the delta for later use.
- Uses all the stored deltas to get the average time drift from UTC.
##Getting Started Install the module.
npm install @smarterservices/smarterclock
Import the module into your codebase
var smarterclock = require('@smarterservices/smarterclock')
Create an instance of the clock object passing in the required params. See the options section below for options that can be used.
var options = {};
// create a new instance
var clock = new smarterclock(options);
// get the current unix timestamp
var currentTime = clock.getTime();
console.log(currentTime);
Options
The clock constructor can accept the following options. all options are optional
syncDelay
(number) : The time (in seconds) between each call to an NTP server to get the latest UTC timestamp. Defaults to 300 (which is 5 minutes).history
(number): The nubmer of delta values that should be maintained and used for calculating your local time drift. Defaults to 10.servers
(array) : An array of NTP servers to use when looking up time. Each value in the array should be an object with the keysserver
andport
. Defaults to pool.ntp.org.
Example
{
"syncDelay" : 60,
"history": 10,
"servers" : [{"server": "pool.ntp.org", "port": 123}]
}
Methods
###getTime()
Returns unix timestamp based on delta values between server and your local time. This is the time that can be used instead of new Date().getTime()
Example
clock.getTime();
###syncTime()
An on-demand method that will force a sync with an NTP server.
clock.syncTime();