GithubHelp home page GithubHelp logo

hhy5277 / later Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bunkat/later

0.0 1.0 0.0 1.54 MB

A javascript library for defining recurring schedules and calculating future (or past) occurrences for them. Includes support for using English phrases and Cron schedules. Works in Node and in the browser.

Home Page: http://bunkat.github.io/later/

License: MIT License

Makefile 0.24% JavaScript 44.63% HTML 55.13%

later's Introduction

This project is no longer being maintained. It should be treated as sample code on one technique to calculate future instances of complex schedules. If you are looking to fire a task every 1 minute, use a cron scheduler instead.

Later Build Status

Later is a library for describing recurring schedules and calculating their future occurrences. It supports a very flexible schedule definition including support for composite schedules and schedule exceptions. Create new schedules manually, via Cron expression, via text expressions, or using a fully chainable API.

Types of schedules supported by Later:

  • Run a report on the last day of every month at 12 AM except in December
  • Install patches on the 2nd Tuesday of every month at 4 AM
  • Gather CPU metrics every 10 mins Mon - Fri and every 30 mins Sat - Sun
  • Send out a scary e-mail at 13:13:13 every Friday the 13th

For complete documentation visit http://bunkat.github.io/later/.

Installation

Using npm:

$ npm install later

Using bower:

$ bower install later

Building

To build the minified javascript files for later, run npm install to install dependencies and then:

$ make all

Running tests

To run the tests for later, run npm install to install dependencies and then:

$ make test

Versioning

Releases will be numbered with the following format:

<major>.<minor>.<patch>

And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch)
  • New additions without breaking backward compatibility bumps the minor (and resets the patch)
  • Bug fixes and misc changes bumps the patch

For more information on SemVer, please visit http://semver.org/.

Bug tracker

Have a bug or a feature request? Please open a new issue.

Change Log

Later v1.2.0

  • Implemented predefined scheduling definitions for cron
    • @yearly, @annually, @monthly, @weekly, @daily, and @hourly are now parsed correctly
    • Submitted by pekeler (thanks!)

Later v1.1.8, v1.1.9

  • Fixed npm and bower entry points

Later v1.1.7

  • Various bug fixes

Later v1.1.3

  • Merge consecutive ranges when using composite schedules (fixes issues #27)

Later v1.1.1 and v1.1.2

  • Fixed handling of ranged schedules which never go invalid. End date is undefined for these types of schedules.

Later v1.1.0

  • Implemented fullDate (fd) constraint to specify a specific occurrence (or exception)
    • later.parse.recur().on(new Date(2013,3,21,10,30,0)).fullDate()

Later v1.0.0

  • Refactored core engine so that it could be better tested
    • Added over 41,500 tests and fixed hundreds of edge cases that were unfortunately broken in v0.0.20
  • Core engine is now extensible via custom time periods and custom modifiers
    • Full examples included in the documentation
  • Added support for finding valid ranges as well as valid instances of schedules
    • Later can now be used to schedule activities and meetings as well as point in time occurrences
  • Improved support for finding past ranges and instances
    • Searching forward or backward now produces the same valid occurrences
  • No more need to specify a resolution!
    • Later now automatically handles this internally, you no longer need to specify your desired resolution. 'Every 5 minutes' now does exactly what you would expect it to :)
  • Changing between UTC and local time has changed.
    • Use later.date.UTC() and later.date.localTime() to switch between the two.
  • API for parsers has changed.
    • Recur is now at later.parse.recur()
    • Cron is now at later.parse.cron(expr)
    • Text is now at later.parse.text(expr)
  • API for calculating occurrences has changed.
    • Schedules are now compiled using later.schedule(schedule)
    • getNext is now later.schedule(schedule).next(count, start, end)
    • getPrev is now later.schedule(schedule).prev(count, start, end)
  • After meaning 'don't start until after this amount of time' has been deprecated.
    • This was a hack since people had a hard time with resolutions. With resolutions gone, this is no longer needed and is deprecated since it produced non-deterministic schedules.

Note: Schedule definitions did not change (unless you were using after constraints which have been deprecated). If you stored any schedule definitions from v0.0.20, they should continue to work unchanged in v1.0.0.

later's People

Contributors

billscheidel avatar bunkat avatar gautaz avatar ilanbiala avatar pekeler avatar peterdavehello avatar xorgy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.