Socket
Socket
Sign inDemoInstall

schedule-forecaster

Package Overview
Dependencies
2
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    schedule-forecaster

A schedule forecaster for NodeJS which expose a generic API to calculate number of occurrences within given time period. Useful for API clients and sms, email, notification daemons which tasks that need to calculate occurrence of a given event.


Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

node-schedule-forecaster

A schedule forecaster for NodeJS which expose a generic API to calculate number of occurrences within given time period. Useful for API clients and sms, email, notification daemons which tasks that need to calculate occurrence of a given event.

Installation

Use NPM to install using;

npm install schedule-forecaster --save

Getting Started

Lets assume that we want to send a SMS to 10 mobile subscribers in each month. So, we are planing to create a schedule for this task. This schedule is going to start on 17th December of 2018 1.00 A.M., and we want to repeat this event on every month until it's end on 17th March of 2019, 2.00 A.M. Then we can calculate/forecast the number of SMS to be send on each month as below;

let ScheduleForecaster = require('schedule-forecaster').ScheduleForecaster;
let forecaster = new ScheduleForecaster();

const forecast = forecaster.forecastSchedule({
    size: 10,
    recurrence: 'monthly',
    limitPeriod: 'monthly',
    startDate: new Date(2018, 11, 17, 1),
    endDate: new Date(2019, 2, 17, 2)
});

console.log(forecast);
// {'2018': { '12': 10}, '2019': { '1': 10, '2': 10, '3': 10} }

See test cases for more details.

API

forecastSchedule(args)

Forecast number of items need for given global message limit period which bound from startDate to endDate.

Parameters

An Object of parameters as described below;

  • recurrence : {String} 'once|monthly|weekly|daily' (optional) Default monthly

  • limitPeriod : {String} 'monthly|weekly|daily' (optional) Default monthly

  • startDate : {Integer/String/Date) '1234567890|Date|Date String' (optional) Default new Date()

  • endDate : {Integer/String/Date) '1234567890|Date|Date String' (required)

  • size : {Integer} No of items (e.g.messages,email,sms) need to send in single schedule (optional) Default 1

Return

Returns an Object which has keys as years, and values are also Objects such that key values pairs of number of items to be send on each month.

E.g. If current date is 'Sun Nov 17 2015 00:00:00 GMT+0530 (IST)', then it'll forecast number of items to be send by end of 'Sun Feb 10 2015 00:00:00 GMT+0530 (IST)' as below;

{
    '2015': {'11': 30, '12': 50},
    '2016': {'1': 50, '2': 25}
}

License

This Software is licensed under MIT License

Copyright (c) 2015 Gihan Karunarathne gckarunarathne@gmail.com

Keywords

FAQs

Last updated on 04 Jan 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc