2.0.1 • Published 6 years ago

@smarterservices/smarterclock v2.0.1

Weekly downloads
-
License
-
Repository
github
Last release
6 years ago

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 keys server and port. 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();
		
2.0.1

6 years ago

2.0.0

7 years ago

1.1.1

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago