项目作者: andy2046

项目描述 :
ringtail to make cyclic task schedule easy and efficient
高级语言: JavaScript
项目地址: git://github.com/andy2046/ringtail.git
创建时间: 2017-12-07T08:03:05Z
项目社区:https://github.com/andy2046/ringtail

开源协议:MIT License

下载


ringtail

ringtail is a JavaScript library to make cyclic task schedule easy and efficient.

Examples

  1. import { Ring, wait, randomStr } from 'ringtail';
  2. const r1 = Ring.of({
  3. size: 1,
  4. interval: 1000
  5. });
  6. (async () => {
  7. await wait(2000) // wait for Ring startup
  8. console.log('r1 start', Date.now())
  9. r1.schedule(() => {
  10. console.log('r1: 1000', Date.now())
  11. })
  12. r1.schedule(() => {
  13. console.log('r1: 2000', Date.now())
  14. }, 2000)
  15. r1.schedule(() => {
  16. console.log('r1: 3000', Date.now())
  17. }, 3000)
  18. })();
  19. const r2 = Ring.of({
  20. size: 2,
  21. interval: 1000
  22. });
  23. (async () => {
  24. await wait(6000)
  25. r1.disconnect()
  26. console.log('r2 start', Date.now())
  27. r2.schedule(() => {
  28. console.log('r2: 1000', Date.now())
  29. })
  30. r2.schedule(() => {
  31. console.log('r2: 2000', Date.now())
  32. }, 2000)
  33. r2.schedule(() => {
  34. console.log('r2: 3000', Date.now())
  35. }, 3000)
  36. })();
  37. const r3 = Ring.of({
  38. size: 2,
  39. interval: 1000,
  40. callback: (v) => {
  41. console.log('r3:', v, Date.now())
  42. }
  43. });
  44. (async () => {
  45. await wait(10000)
  46. r2.disconnect()
  47. console.log('r3 start', Date.now())
  48. const uid = randomStr(10)
  49. r3.schedule('1000')
  50. r3.schedule('2000', 2000, uid)
  51. r3.schedule('3000', 3000)
  52. r3.cancel(uid)
  53. })();
  54. // r1 start 1513089*739*966
  55. // r1: 1000 1513089*740*976
  56. // r1: 2000 1513089*741*978
  57. // r1: 3000 1513089*742*984
  58. // r2 start 1513089*743*964
  59. // r2: 1000 1513089*744*986
  60. // r2: 2000 1513089*745*992
  61. // r2: 3000 1513089*746*996
  62. // r3 start 1513089*747*964
  63. // r3: 1000 1513089*749*001
  64. // r3: 3000 1513089*751*008

Installation

  1. npm install --save ringtail

Usage

You can import from ringtail:

  1. import { Ring, wait, randomStr } from 'ringtail';
  2. // or
  3. const { Ring, wait, randomStr } = require('ringtail');