Skip to content

Latest commit

 

History

History
1328 lines (907 loc) · 73.2 KB

CHANGELOG.md

File metadata and controls

1328 lines (907 loc) · 73.2 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

6.1.4 (2025-03-12)

6.1.3 (2025-03-12)

Bug Fixes

  • improve job retrieval logic in Agenda.now method for clarity (b7ac3d1)
  • optimize job creation logic in Agenda.now method to avoid unnecessary await (80d03e7)

6.1.2 (2025-03-02)

Bug Fixes

  • enhance job retrieval logic in Agenda.now method to create job if not found (62ab944)

6.1.1 (2025-03-02)

Bug Fixes

  • update job creation logic in Agenda.now method (ceb4e7d)

6.1.0 (2025-03-02)

Features

  • add delay utility function and enhance job management methods (36ac087)

Bug Fixes

  • enable esModuleInterop and update import statements for consistency (bf5ce7d)
  • use sudo for global npm installation in CI workflow (dac2671)

6.0.0 (2025-01-27)

⚠ BREAKING CHANGES

  • Switching from ncb000gt/node-cron to harrisiirak/cron-parser for cron-pattern parsing.

    Previously month was 0-based (0=January). Going forward standard Unix pattern is used, which is 1-based (1=January).

    Please update existing cron-patterns that specify a month (4th position of a pattern). The month is now 1 - 12

    1 = January

    2 = February

    3...

    Example Execute on 1st of January
    Old 0 0 1 0 *
    New 0 0 1 1 *

    old Cron patterns

    * * * * * *
    | | | | | |
    | | | | | +-- Year              (range: 1900-3000)
    | | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
    | | | +------ Month of the Year (range: 0-11) NOTE: Difference here
    | | +-------- Day of the Month  (range: 1-31)
    | +---------- Hour              (range: 0-23)
    +------------ Minute            (range: 0-59)
    

    new cron patterns

    * * * * * *
    | | | | | |
    | | | | | +-- Year              (range: 1900-3000)
    | | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
    | | | +------ Month of the Year (range: 1-12) NOTE: Difference here
    | | +-------- Day of the Month  (range: 1-31)
    | +---------- Hour              (range: 0-23)
    +------------ Minute            (range: 0-59)
    

Co-authored-by: Aras Abbasi a.abbasi@cognigy.com

Features

  • add queue size to running stats (6271781)
  • added @breejs to README (68ade1d)
  • allow to fork jobs in isolated sub process (2a68c95)
  • check if job state update was successful before running a job (606e141)
  • database: upgrade mongodb -> 3.1 (fd077d1)
  • isRunning querys database again if called by client (1aaaa61)

Bug Fixes

  • 🐛 re-enable broken test (abfd348)

  • add fork paramters to console (9f2e7fd)

  • add job name again stats output (1aa2d4a)

  • Add try/catch block to agenda#now method (#876) (8e1fe23)

  • add types for chai and fix expect in agenda.test.ts (7d508a9)

  • add typings for events (a6c0356)

  • allow data type defintions for jobs (ef85fc5)

  • allow passing forkMode to every (ff274ba)

  • allow returing details for status (7a8a5bf)

  • bind correct context to process (cf70739)

  • calculate nextRunAt when endDate is undefined (#1227) (a7a2b83)

  • changelog for v4 (dd8b569)

  • check if abort controller is supported (a00d611)

  • check if job has expired before we run it (e301511)

  • check if job is still alive (a39c809)

  • check if lockedAt has been resetted in the meantime (aa5323b)

  • collection and options are optional now (#1275) (143af6d)

  • database: use db() syntax rather than pulling dbName from client (b811523)

  • define: warning if job definition exists already (3fe9a6d)

  • deps: update dependency cron-parser to v3 (#1188) (f313f46)

  • deps: update dependency debug to ~4.2.0 (#1125) (6d53a13)

  • deps: update dependency debug to ~4.3.0 (#1148) (7ed55ed)

  • deps: update dependency human-interval to v2 (#1134) (d6bcf03)

  • ensure check if job is dead is ending sometime :-) (39950f3)

  • ensure jobs are filled up till concurrency reached (1a8bb31)

  • ensure locked at is processed as date (3a5a0c4)

  • ensure new jobs are put on the left side of the job processing queue (30e68ba)

  • export all kind of types (3bd90dc)

  • export cjs and es (#1298) (849b32f)

  • fix outpout of agenda job status details (82ab1a8)

  • fix outpout of agenda job status details (7b24f88)

  • fix outpout of agenda job status details (3dc0709)

  • give the test some more time (e2cacb5)

  • history: match cron-parser pattern (#1335) (5a73b55)

  • improve error message for on handler (92d42ca)

  • improve errors for childs (8e3b827)

  • improve exit code error message (f1a5eb8)

  • improve locking and ensure locks are released (3160f0d)

  • isRunning for non job processor calls (a5bb965)

  • isRunning, check if db returns a result (e6ea7e2)

  • job processor handling for recurring jobs could fill up queue and block processing (54bc53c)

  • job processor localQueueProcessing flag (413f673)

  • job timeout check and improve error handling for childs (b365957)

  • job-processor: emit error when db query fails (9bfabd3)

  • job-processor: emit error when db query fails (eff80aa)

  • job: ensure agenda is ready before calling save job (be4c026)

  • jobprocessor: check for object.fromEntries for node 10 support (#3) (b8cc61f)

  • jobprocessor: check if set timeout value is valid (2afaaa3)

  • jobprocessor: ensure returnNextConcurrencyFreeJob is not returning same job each time (11d6606)

  • jobprocessor: ensure set timeout is only called once for each job in the queue (1590224)

  • jobprocessor: improve checkIfJobIsStillAlive (2919083)

  • jobprocessor: introduce a canceled property to check if job is still alive (55b63d7)

  • jobprocessor: prevent overloading of job queue processing (9854007)

  • jobprocessor: set job enqueud to true for future jobs (a3d4203)

  • locking: ensure jobs are not locked too greedy (5bc123a)

  • logic for datbase connection (7ee64c1)

  • make touch promise-based (#667) (0840588), closes /github.com/agenda/agenda/blob/ff94c8a4c9bc564a0bed9eaa79de1c4fdbed0fde/lib/job/touch.js#L10-L13 /github.com/agenda/agenda/blob/bd8a8e003cd09d6e9826accbf6c30be75212a9a9/test/job.js#L352-L364

  • make agenda.cancel no longer require a callback (5f895e3), closes #249

  • make optional mongo-collection optional and allow dates for dates (#1258) (29267cb)

  • more typings (#5) (8d6e137)

  • more typings, minor functionality changes (#2) (b13d054)

  • nextRunAt value can be null (e39cfd0)

  • not running jobs even though concurrency is not reached (0e82025)

  • only unlock jobs which have a nextRunAt jobs on shutdown (291f16e)

  • only unlock jobs with a next run at date on shutdown (a458aea)

  • only update job state fields during job processing (be8e51b)

  • package.json to reduce vulnerabilities (#1509) (41a2b37)

  • process-jobs: also add name to lock call (481ea77)

  • ready and error events are allowed wihtin sub workers (cb4228c)

  • rename err to error, fix typing of DefinitionProcessor, use debug ins… (#9) (39b598e)

  • Running tests on mongodb memory-server (#1501) (024b711)

  • simplified verbiage (ee3ce39)

  • simplify default values (35d5424)

  • simplify unlocking and improve logging (a70f500)

  • skip index creation (5242736)

  • small code cleanups and new flag to toggle (2a6e5fe)

  • someone updated bee to bree (they are two separate packages) (c98ba5c)

  • test: cleanup tests (c5d081a)

  • test: debug failed lock expire test (7d69680)

  • test: debug failed priority test (924287c)

  • test: fix timeout check (e92cd85)

  • test: just check if there are almost all jobs running (b2a5e6e)

  • tests, agenda-instance should have a smaller processEvery (b248a2b)

  • tests: rm console log from debugging (b211c8e)

  • test: unlock job test fix (6446b64)

  • too greedy locking (26ad106)

  • try to solve the locking issue (d2f3b20)

  • typescript export needs es6 (#1268) (eabeea8)

  • Typescript optional parameters (#1279) (9f62482)

  • typings: names -> name (c2ca928)

  • unlock job test needs cb (#1138) (bfb5603)

  • update deps and switch moment-timezone to luxon (e5eb973)

  • update: when saving a job via _id add job name (24f6a84)

  • use different appraoch to find definition file (9d4c60e)

  • use isNaN check in isValidDate (#10) (3bc2e30)

  • use message bus instead of signal to cancel child (fcec3a9)

  • use new mongo stack (a2e74a9)

  • wait for start of test job (413f797)

  • wrong initial value and lower processEvery for agenda-instance.js (#1131) (ff9dd7a)

  • switching from cron to cron-parser (#16) (e5c3bf1)

5.0.1 (2025-01-27)

6.0.1 (2025-01-27)

5.0.1 (2025-01-27)

7.0.0 (2025-01-27)

⚠ BREAKING CHANGES

  • Switching from ncb000gt/node-cron to harrisiirak/cron-parser for cron-pattern parsing.

    Previously month was 0-based (0=January). Going forward standard Unix pattern is used, which is 1-based (1=January).

    Please update existing cron-patterns that specify a month (4th position of a pattern). The month is now 1 - 12

    1 = January

    2 = February

    3...

    Example Execute on 1st of January
    Old 0 0 1 0 *
    New 0 0 1 1 *

    old Cron patterns

    * * * * * *
    | | | | | |
    | | | | | +-- Year              (range: 1900-3000)
    | | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
    | | | +------ Month of the Year (range: 0-11) NOTE: Difference here
    | | +-------- Day of the Month  (range: 1-31)
    | +---------- Hour              (range: 0-23)
    +------------ Minute            (range: 0-59)
    

    new cron patterns

    * * * * * *
    | | | | | |
    | | | | | +-- Year              (range: 1900-3000)
    | | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
    | | | +------ Month of the Year (range: 1-12) NOTE: Difference here
    | | +-------- Day of the Month  (range: 1-31)
    | +---------- Hour              (range: 0-23)
    +------------ Minute            (range: 0-59)
    

Co-authored-by: Aras Abbasi a.abbasi@cognigy.com

Features

  • add queue size to running stats (6271781)
  • added @breejs to README (68ade1d)
  • allow to fork jobs in isolated sub process (2a68c95)
  • check if job state update was successful before running a job (606e141)
  • database: upgrade mongodb -> 3.1 (fd077d1)
  • isRunning querys database again if called by client (1aaaa61)

Bug Fixes

  • 🐛 re-enable broken test (abfd348)

  • add fork paramters to console (9f2e7fd)

  • add job name again stats output (1aa2d4a)

  • Add try/catch block to agenda#now method (#876) (8e1fe23)

  • add types for chai and fix expect in agenda.test.ts (7d508a9)

  • add typings for events (a6c0356)

  • allow data type defintions for jobs (ef85fc5)

  • allow passing forkMode to every (ff274ba)

  • allow returing details for status (7a8a5bf)

  • bind correct context to process (cf70739)

  • calculate nextRunAt when endDate is undefined (#1227) (a7a2b83)

  • changelog for v4 (dd8b569)

  • check if abort controller is supported (a00d611)

  • check if job has expired before we run it (e301511)

  • check if job is still alive (a39c809)

  • check if lockedAt has been resetted in the meantime (aa5323b)

  • collection and options are optional now (#1275) (143af6d)

  • database: use db() syntax rather than pulling dbName from client (b811523)

  • define: warning if job definition exists already (3fe9a6d)

  • deps: update dependency cron-parser to v3 (#1188) (f313f46)

  • deps: update dependency debug to ~4.2.0 (#1125) (6d53a13)

  • deps: update dependency debug to ~4.3.0 (#1148) (7ed55ed)

  • deps: update dependency human-interval to v2 (#1134) (d6bcf03)

  • ensure check if job is dead is ending sometime :-) (39950f3)

  • ensure jobs are filled up till concurrency reached (1a8bb31)

  • ensure locked at is processed as date (3a5a0c4)

  • ensure new jobs are put on the left side of the job processing queue (30e68ba)

  • export all kind of types (3bd90dc)

  • export cjs and es (#1298) (849b32f)

  • fix outpout of agenda job status details (82ab1a8)

  • fix outpout of agenda job status details (7b24f88)

  • fix outpout of agenda job status details (3dc0709)

  • give the test some more time (e2cacb5)

  • history: match cron-parser pattern (#1335) (5a73b55)

  • improve error message for on handler (92d42ca)

  • improve errors for childs (8e3b827)

  • improve exit code error message (f1a5eb8)

  • improve locking and ensure locks are released (3160f0d)

  • isRunning for non job processor calls (a5bb965)

  • isRunning, check if db returns a result (e6ea7e2)

  • job processor handling for recurring jobs could fill up queue and block processing (54bc53c)

  • job processor localQueueProcessing flag (413f673)

  • job timeout check and improve error handling for childs (b365957)

  • job-processor: emit error when db query fails (9bfabd3)

  • job-processor: emit error when db query fails (eff80aa)

  • job: ensure agenda is ready before calling save job (be4c026)

  • jobprocessor: check for object.fromEntries for node 10 support (#3) (b8cc61f)

  • jobprocessor: check if set timeout value is valid (2afaaa3)

  • jobprocessor: ensure returnNextConcurrencyFreeJob is not returning same job each time (11d6606)

  • jobprocessor: ensure set timeout is only called once for each job in the queue (1590224)

  • jobprocessor: improve checkIfJobIsStillAlive (2919083)

  • jobprocessor: introduce a canceled property to check if job is still alive (55b63d7)

  • jobprocessor: prevent overloading of job queue processing (9854007)

  • jobprocessor: set job enqueud to true for future jobs (a3d4203)

  • locking: ensure jobs are not locked too greedy (5bc123a)

  • logic for datbase connection (7ee64c1)

  • make touch promise-based (#667) (0840588), closes /github.com/agenda/agenda/blob/ff94c8a4c9bc564a0bed9eaa79de1c4fdbed0fde/lib/job/touch.js#L10-L13 /github.com/agenda/agenda/blob/bd8a8e003cd09d6e9826accbf6c30be75212a9a9/test/job.js#L352-L364

  • make agenda.cancel no longer require a callback (5f895e3), closes #249

  • make optional mongo-collection optional and allow dates for dates (#1258) (29267cb)

  • more typings (#5) (8d6e137)

  • more typings, minor functionality changes (#2) (b13d054)

  • nextRunAt value can be null (e39cfd0)

  • not running jobs even though concurrency is not reached (0e82025)

  • only unlock jobs which have a nextRunAt jobs on shutdown (291f16e)

  • only unlock jobs with a next run at date on shutdown (a458aea)

  • only update job state fields during job processing (be8e51b)

  • package.json to reduce vulnerabilities (#1509) (41a2b37)

  • process-jobs: also add name to lock call (481ea77)

  • ready and error events are allowed wihtin sub workers (cb4228c)

  • rename err to error, fix typing of DefinitionProcessor, use debug ins… (#9) (39b598e)

  • Running tests on mongodb memory-server (#1501) (024b711)

  • simplified verbiage (ee3ce39)

  • simplify default values (35d5424)

  • simplify unlocking and improve logging (a70f500)

  • skip index creation (5242736)

  • small code cleanups and new flag to toggle (2a6e5fe)

  • someone updated bee to bree (they are two separate packages) (c98ba5c)

  • test: cleanup tests (c5d081a)

  • test: debug failed lock expire test (7d69680)

  • test: debug failed priority test (924287c)

  • test: fix timeout check (e92cd85)

  • test: just check if there are almost all jobs running (b2a5e6e)

  • tests, agenda-instance should have a smaller processEvery (b248a2b)

  • tests: rm console log from debugging (b211c8e)

  • test: unlock job test fix (6446b64)

  • too greedy locking (26ad106)

  • try to solve the locking issue (d2f3b20)

  • typescript export needs es6 (#1268) (eabeea8)

  • Typescript optional parameters (#1279) (9f62482)

  • typings: names -> name (c2ca928)

  • unlock job test needs cb (#1138) (bfb5603)

  • update deps and switch moment-timezone to luxon (e5eb973)

  • update: when saving a job via _id add job name (24f6a84)

  • use different appraoch to find definition file (9d4c60e)

  • use isNaN check in isValidDate (#10) (3bc2e30)

  • use message bus instead of signal to cancel child (fcec3a9)

  • use new mongo stack (a2e74a9)

  • wait for start of test job (413f797)

  • wrong initial value and lower processEvery for agenda-instance.js (#1131) (ff9dd7a)

  • switching from cron to cron-parser (#16) (e5c3bf1)

6.2.12 (2022-08-02)

Bug Fixes

  • improve error message for on handler (92d42ca)

6.2.11 (2022-05-23)

Bug Fixes

  • bind correct context to process (cf70739)

6.2.10 (2022-05-23)

Bug Fixes

  • check if lockedAt has been resetted in the meantime (aa5323b)
  • improve errors for childs (8e3b827)

6.2.9 (2022-05-20)

Bug Fixes

  • job timeout check and improve error handling for childs (b365957)

6.2.8 (2022-05-11)

Bug Fixes

  • use message bus instead of signal to cancel child (fcec3a9)

6.2.7 (2022-05-11)

Bug Fixes

  • use different appraoch to find definition file (9d4c60e)

6.2.6 (2022-05-10)

Bug Fixes

  • add fork paramters to console (9f2e7fd)

6.2.5 (2022-05-10)

Bug Fixes

  • improve exit code error message (f1a5eb8)

6.2.4 (2022-05-10)

Bug Fixes

  • check if abort controller is supported (a00d611)

6.2.3 (2022-05-10)

6.2.2 (2022-05-10)

Bug Fixes

  • allow passing forkMode to every (ff274ba)

6.2.1 (2022-05-10)

Bug Fixes

  • small code cleanups and new flag to toggle (2a6e5fe)

6.2.0 (2022-05-09)

Features

  • allow to fork jobs in isolated sub process (2a68c95)

6.1.1 (2022-04-05)

6.1.0 (2022-03-21)

Features

  • check if job state update was successful before running a job (606e141)

6.0.9 (2022-03-18)

6.0.8 (2022-01-10)

6.0.7 (2021-12-12)

6.0.6 (2021-12-10)

Bug Fixes

  • ensure locked at is processed as date (3a5a0c4)

6.0.5 (2021-12-10)

Bug Fixes

  • give the test some more time (e2cacb5)
  • only update job state fields during job processing (be8e51b)

6.0.4 (2021-12-05)

Bug Fixes

  • nextRunAt value can be null (e39cfd0)

6.0.3 (2021-12-03)

Bug Fixes

  • check if job has expired before we run it (e301511)

6.0.2 (2021-10-28)

Bug Fixes

6.0.0 (2021-08-27)

⚠ BREAKING CHANGES

  • Upgrade to mongo driver 4

5.0.1 (2021-02-12)

Bug Fixes

  • update deps and switch moment-timezone to luxon (e5eb973)

5.0.0 (2020-12-06)

⚠ BREAKING CHANGES

  • Switching from ncb000gt/node-cron to harrisiirak/cron-parser for cron-pattern parsing.

    Previously month was 0-based (0=January). Going forward standard Unix pattern is used, which is 1-based (1=January).

    Please update existing cron-patterns that specify a month (4th position of a pattern). The month is now 1 - 12

    1 = January

    2 = February

    3...

    Example Execute on 1st of January
    Old 0 0 1 0 *
    New 0 0 1 1 *

    old Cron patterns

    * * * * * *
    | | | | | |
    | | | | | +-- Year              (range: 1900-3000)
    | | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
    | | | +------ Month of the Year (range: 0-11) NOTE: Difference here
    | | +-------- Day of the Month  (range: 1-31)
    | +---------- Hour              (range: 0-23)
    +------------ Minute            (range: 0-59)
    

    new cron patterns

    * * * * * *
    | | | | | |
    | | | | | +-- Year              (range: 1900-3000)
    | | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
    | | | +------ Month of the Year (range: 1-12) NOTE: Difference here
    | | +-------- Day of the Month  (range: 1-31)
    | +---------- Hour              (range: 0-23)
    +------------ Minute            (range: 0-59)
    

Co-authored-by: Aras Abbasi a.abbasi@cognigy.com

  • switching from cron to cron-parser (#16) (e5c3bf1)

4.1.6 (2020-11-19)

Bug Fixes

  • only unlock jobs with a next run at date on shutdown (a458aea)

4.1.5 (2020-11-19)

Bug Fixes

  • jobprocessor: ensure set timeout is only called once for each job in the queue (1590224)

4.1.4 (2020-11-18)

Bug Fixes

  • jobprocessor: check if set timeout value is valid (2afaaa3)

4.1.3 (2020-10-30)

Bug Fixes

  • only unlock jobs which have a nextRunAt jobs on shutdown (291f16e)
  • simplify default values (35d5424)

4.1.2 (2020-10-25)

Bug Fixes

  • isRunning for non job processor calls (a5bb965)
  • wait for start of test job (413f797)

4.1.1 (2020-10-25)

Bug Fixes

  • isRunning, check if db returns a result (e6ea7e2)

4.1.0 (2020-10-25)

Features

  • isRunning querys database again if called by client (1aaaa61)

Bug Fixes

  • job processor handling for recurring jobs could fill up queue and block processing (54bc53c)
  • job processor localQueueProcessing flag (413f673)
  • rename err to error, fix typing of DefinitionProcessor, use debug ins… (#9) (39b598e)
  • use isNaN check in isValidDate (#10) (3bc2e30)

4.0.33 (2020-10-24)

Bug Fixes

  • fix outpout of agenda job status details (82ab1a8)
  • fix outpout of agenda job status details (7b24f88)
  • fix outpout of agenda job status details (3dc0709)

4.0.32 (2020-10-24)

Bug Fixes

  • logic for datbase connection (7ee64c1)

4.0.31 (2020-10-23)

Bug Fixes

  • job-processor: emit error when db query fails (9bfabd3)

4.0.30 (2020-10-23)

Bug Fixes

  • job-processor: emit error when db query fails (eff80aa)

4.0.29 (2020-10-22)

Bug Fixes

4.0.28 (2020-10-20)

Bug Fixes

  • tests: rm console log from debugging (b211c8e)

4.0.27 (2020-10-20)

Bug Fixes

  • define: warning if job definition exists already (3fe9a6d)
  • job: ensure agenda is ready before calling save job (be4c026)
  • test: cleanup tests (c5d081a)
  • test: debug failed lock expire test (7d69680)
  • test: debug failed priority test (924287c)
  • test: fix timeout check (e92cd85)
  • typings: names -> name (c2ca928)

4.0.26 (2020-10-20)

Bug Fixes

  • test: just check if there are almost all jobs running (b2a5e6e)

4.0.25 (2020-10-20)

Bug Fixes

  • jobprocessor: check for object.fromEntries for node 10 support (#3) (b8cc61f)
  • jobprocessor: ensure returnNextConcurrencyFreeJob is not returning same job each time (11d6606)
  • jobprocessor: set job enqueud to true for future jobs (a3d4203)
  • test: unlock job test fix (6446b64)
  • more typings, minor functionality changes (#2) (b13d054)

4.0.24 (2020-10-20)

Bug Fixes

  • jobprocessor: improve checkIfJobIsStillAlive (2919083)
  • jobprocessor: prevent overloading of job queue processing (9854007)

4.0.22 (2020-10-16)

Bug Fixes

  • jobprocessor: introduce a canceled property to check if job is still alive (55b63d7)

4.0.21 (2020-10-15)

Features

Bug Fixes

3.1.0 / 2020-04-07

Stay safe!

  • Fix for skipImmediate resetting nextRunAt to current date (#860) (Thanks @AshlinDuncan!)
  • Fix deprecated reconnect options (#948) (Thanks @ekegodigital!)
  • Add ability to set a skip when querying jobs. (#898) (Thanks @cjolif!)

Internal:

  • Fixed deprecated MongoDB functions in tests (#928) (Thanks @MichielDeMey!)
  • Updated devDependencies

Thank you @koresar, @sampathBlam, and @MichielDeMey helping to review PRs for this release! 👏

3.0.0 / 2020-02-13

  • Support MongoDB's Unified Topology Design (#921) (Thanks @viktorzavadil!)
  • Fix: check that the new nextRunAt is different that the previous nextRunAt (#863) (Thanks @RaphaelRheault!)
  • Update dependencies. Most notably MongoDB driver 3.4 → 3.5 (#899, #900, #903, #906, #908, #910, #912, #913, #920, #922)
  • Documentation updates, thanks @MichielDeMey and @Sunghee2. (#923 & #907)

BREAKING

  • Stop testing for Node.js 8. This might still work but we're no longer actively testing for it. (#925)

2.3.0 / 2019-12-16

  • Improved performance in situations when there are many "expired" jobs in the database (#869) (Thanks @mfred488!)
  • Fix periodic node.js process unhandledRejection (#887) (Thanks @koresar and @Scorpil)
  • Update dependencies

2.2.0 / 2019-11-24

  • Fix skipImmediate option in .every (#861) (Thanks @erics2783!)
  • Add try/catch block to agenda#now method (#876) (Thanks @sampathBlam!)
  • Refactor job queuing mechanism. Agenda n ow guarantees priority when executing jobs scheduled the same datetime. Fixes also some tests. (#852) (Thank you @dmbarreiro!)
  • Update dependencies (Kudos @simison!) Most notably mongodb ~3.2.7 -> ~3.3.0 (changelog) — highlights:
    • Mongo DB Server Version 4.2 feature support
    • Merged mongodb-core into node-mongodb-native
    • Beta support for MongoDB Client-Side Encryption
    • SRV Polling for Sharded Clusters
  • Updates to documentation (Thank you @lautarobock, @sampathBlam, @indatawetrust)

2.1.0 / 2019-09-09

  • Support async functions in job processing (#653) (thanks @princjef!)
  • Allow sorting and limiting jobs when searching (#665) (thank you @edwin-jones)
  • Update MongoClient connection settings with useNewUrlParser: true to remove the deprecation warning. (#806) (thanks @dpawson905!)
  • Allow valid date strings when scheduling (#808) (Thanks @wingsbob!)
  • Update dependencies (#820)
  • Update documentation (kudos @dandv, @pedruino and many others!)
  • Fix linting errors (#847) (thanks @dmbarreiro!)

2.0.2 / 2018-09-15

  • Fixes a MongoDB connection string issue with Atlas (#674

2.0.1 / 2018-08-30

  • Fix a bug where job.touch() wasn't promise based, as it should've been (#667

2.0.0 / 2018-07-19

  • Rewrite tests: replace mocha and blanket with ava and nyc (#506)
  • Optimization: don't try and unlock jobs when _lockedJobs is empty (#509)
  • Code cleanup (#503)
  • Ensure tests pass for Node.js version 10 #608)
  • Add skipImmediate to repeatEvery() options to skip immediate run of repeated jobs when Agenda starts. See documentation (#594)
  • Fixes some flaky tests
  • Adds docs generator (npm run docs to generate /docs)

BREAKING

  • Rewrite Agenda API support promises! (#557)

    No more callbacks! Instead of:

    function graceful() {
      agenda.stop(function() {
        process.exit(0);
      });
    }

    You need to:

    async function graceful() {
      await agenda.stop();
      process.exit(0);
    }

    You don't anymore have to listen for start event. Instead you can do:

    await agenda.start();
    agenda.every('10 minutes', 'example');

    However, this will still work:

    agenda.on('ready', function () {
      agenda.every('10 minutes', 'example');
      agenda.start();
    });

    See the documentation for more!

  • Drop support for Node.js versions 4, 5 and 6 (#557 / #608)

  • Drop support for MongoDB 2.4 (#497)

  • Update Native MongoDB driver to 3.1 from 2.2 (#616)

  • Jobs emit errors instead of throwing them

1.0.3 / 2017-10-17

1.0.2 / 2017-10-17

1.0.1 / 2017-10-10

  • Update dependencies cron and debug (#505)

1.0.0 / 2017-08-12

  • Gracefully recover from losing connection to MongoDB (#472)
  • Code cleanup (#492)

BREAKING

Previously Agenda would treat months as 0-11 where as normally, cron months are parsed as 1-12.

* * * * * *
| | | | | |
| | | | | +-- Year              (range: 1900-3000)
| | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
| | | +------ Month of the Year (range: 0-11) NOTE: Difference here
| | +-------- Day of the Month  (range: 1-31)
| +---------- Hour              (range: 0-23)
+------------ Minute            (range: 0-59)

Starting in version 1.0.0, cron will be parsed in the standard UNIX style:

* * * * * *
| | | | | |
| | | | | +-- Year              (range: 1900-3000)
| | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
| | | +------ Month of the Year (range: 1-12) NOTE: Difference here
| | +-------- Day of the Month  (range: 1-31)
| +---------- Hour              (range: 0-23)
+------------ Minute            (range: 0-59)

0.10.2 / 2017-08-10

0.10.1 / 2017-08-10

  • Unpublished and re-published as v0.10.2

0.10.0 / 2017-08-08

  • Replace the deprecated findAndModify method from native MongoDB driver to findOneAndUpdate (#448)
  • Going forward, we won't ensure Node.js v0.10 and v0.11 compatibility anymore (#449)
  • Code cleanup (#491, #489, #488, #487)

0.9.1 / 2017-03-22

Republish release for NPM. Includes fixes from 0.9.0 release:

  • add support for mongoose.connection for agenda.mongo(), fixes #156
  • Fix for race condition in the afterEach clean up code (#355)
  • Fixes + protects against concurrency not being honored (#379)

0.9.0 / 2016-12-28

  • add support for mongoose.connection for agenda.mongo(), fixes #156
  • Fix for race condition in the afterEach clean up code (#355)
  • Fixes + protects against concurrency not being honored (#379)
  • Bump mongodb dep version to support ssl conns (#368)
  • Increase Mongo compatability to 2.4

0.8.1 / 2016-05-08

  • Add Node v6 to CI
    1. Update dev dependencies for out of date. 2. Small fix to job.js for invalid repeatAt
  • Update .npmignore
  • Fix doc: cb not marked as optional (closes #279)
  • Including nextRunAt check in query for on the fly lock.
  • Picking up any job with an expired lock (not just recurring or queued).
  • Fixed failing test
  • throw on processJobResult error
  • Requeuing concurrency blocked jobs wrt priority.
  • Processing the next job that is not blocked by concurrency.
  • Fix test which fails only sometimes
  • Add agendash as alternative ui
  • Merge pull request #288 from diesal11/master

0.8.0 / 2016-02-21

  • Implementing lock limit
  • Use callback to handle errors if we can.

0.7.9 / 2016-02-05

  • fix: ReferenceError: MongoError is not defined

0.7.8 / 2016-02-03

  • fix: computeNextRunAt timezone bug

0.7.7 / 2016-01-25

  • feat: add timezone option for repeatAt.
  • fix: job locking logic
  • fix: bug with jobs expiring and being enqueued anyway
  • fix: bug where jobs wouldn't run concurrently
  • fix: agenda throwing an exception when starting a job defined on another instance
  • fix: possible bug when using extended Array.prototype

0.7.6 / 2016-01-04

  • feat: Add failCount attribute to jobs
  • fix: job priority for on the fly job lock and queueing is now respected
  • fix: make agenda.cancel no longer require a callback
  • fix: stale jobs running after a more up-to-date job has completed
  • fix: fail/success event emit after jobs have been saved in the database
  • fix: ready event when using config.mongo

0.7.5 / 2015-12-05

  • Adds options.insertOnly to job.unique that prevents the job from being updated multiple times on multiple runs

0.7.4 / 2015-11-26

  • fix job priority scheduling

0.7.3 / 2015-11-22

  • add support for success callbacks on schedule, every and now (@mgregson)
  • using self for reference to collection (@3choBoomer)
  • emit ready from db_init (@jdiamond)

0.7.2 / 2015-10-22

  • Rollback job completion callback to pre-0.7.0
  • Emit events when Agenda init is ready or has failed

0.7.0 / 2015-09-29

  • Switch from mongoskin to mongodb native. Big thanks to the classdojo team for this. Shoutouts to @liamdon, @jetzhou and @byronmwong for the help!

0.6.28 / 2015-02-13

  • Fix for when _findAndLockNextJob returns multiple jobs.

0.6.27 / 2015-02-04

  • code cleanup, fix leaking ignoreErrors

0.6.26 / 2014-11-30

  • fix double run bug

0.6.25 / 2014-11-20

  • Allow specifying mongo config (optionally)

0.6.24 / 2014-10-31

  • Fix .every() running when using cron strings.

0.6.23 / 2014-10-25

  • Remove debugger

0.6.22 / 2014-10-22

  • add job.unique (@nwkeeley)

0.6.21 / 2014-10-20

  • Re-add tests for those who use the npat option.

0.6.20 / 2014-10-14

  • add job.disable() and job.enable()
  • Added .npmignore for test/ build scripts.

0.6.19 / 2014-09-03

  • Create database indexes when initializing Agenda instance (@andyneville)

0.6.18 / 2014-08-16

  • Implemented job.isRunning()
  • Fixed issue where jobs would continue being processed after agenda is explicitly stopped
  • Fixed complete event being emitted before asynchronous jobs are finished

0.6.17 / 2014-08-11

  • add job.repeatAt

0.6.16 / 2014-06-16

  • fix job queue being processed even when agenda was stopped
  • fix agenda.every method

0.6.15 / 2014-06-11

  • fix agenda.every overwriting nextRunAt [closes #70]

0.6.14 / 2014-06-06

  • Added agenda.cancel function
  • Fix more circumstances where jobs re-create after remove

0.6.13 / 2014-06-01

  • fix jobs resaving after remove [closes #66]
  • fix jobs skipping in line from database querying

0.6.12/ 2014-05-22

  • update saveJob to allow for pre-set Ids [closes #64]

0.6.11/ 2014-05-19

  • add job.touch to reset lock lifetime [references #63]

0.6.10 / 2014-05-13

  • make job saving use agenda._name

0.6.9 / 2014-05-13

  • add agenda.name config method
  • fix agenda.mongo not being chainable

0.6.8 / 2014-05-06

  • add graceful job unlocking to stop

0.6.7 / 2014-04-21

  • Implement, document, and test defaultLockLifetime [@shakefu]

0.6.6 / 2014-04-21

  • Bump date.js version [@psema4]

0.6.5 / 2014-04-17

  • mongoskin version bump (better support for mongodb 2.6) [@loginx]

0.6.4 / 2014-04-09

  • fix $setOnInsert with empty obj cause mongodb 2.6 complain [@inetfuture]

0.6.3 / 2014-04-07

  • fix cron-jobs executing multiple times
  • fail the job if repeat interval is wrong

0.6.2 / 2014-03-25

  • fix bug that resulted in jobs scheduled in memory to always re-run
  • Update mongoskin to 1.3

0.6.1 / 2014-03-24

  • allow every and schedule to take array of job names

0.6.0 / 2014-03-21 (NO BREAKING CHANGES)

  • convert to using setTimeout for precise job scheduling [closes #6]

0.5.10/ 2014-03-20

  • fix agenda.every not properly saving jobs
  • improve instantiating jobs, fixes bug where certain attrs weren't loaded in

0.5.9 / 2014-03-10

  • add job#remove method

0.5.8 / 2014-03-07

  • Fixed single jobs not being saved properly [closes #38]

0.5.7 / 2014-03-06

  • fix every re-running jobs out of queue at load

0.5.6 / 2014-02-18

  • Added failing for jobs with undefined definitions
  • Added agenda.purge() to remove old jobs

0.5.5 / 2014-01-28

  • added support to directly give mongoskin object, to help minimize connections

0.5.4 / 2014-01-09

  • Added start event to jobs. (@clayzermki)

0.5.3 / 2014-01-06

  • Added agenda.now method

0.5.2 / 2014-01-06

  • Added ability for job.fail to take an error

0.5.1 / 2013-01-04 (Backwards compatible!)

  • Updated version of humanInterval, adding weeks and months support

0.5.0 / 2013-12-19 (Backwards compatible!)

  • Added job locking mechanism, enabling support for multiple works / agenda instances (@bars3s)

0.4.4 / 2013-12-13

  • fix job.toJson method: add failReason & failedAt attrs (Broken in 0.4.3 and 0.4.2)
  • fix job cb for working with 'q' promises

0.4.3 / 2013-12-13

  • fix job.schedule's taking Date object as 'when' argument [@bars3s]

0.4.2 / 2013-12-11

  • Refactored Job to ensure that everything is stored as an ISODate in the Database. [Closes #14] [@raisch]

0.4.1 / 2013-12-10

  • Added support for synchronous job definitions

0.4.0 / 2013-12-04

  • Added Cron Support [Closes #2]
  • removed modella dependency

0.3.1 / 2013-11-19

  • Fix for setImmediate on Node 0.8

0.3.0 / 2013-11-19

  • Added Events to the Event Queue [References #7]

0.2.1 / 2013-11-14

  • Fixed a bug where mongo wasn't giving updated document

0.2.0 / 2013-11-07

  • Added error for running undefined job. [Closes #4]
  • Fixed critical error where new jobs are not correctly saved.

0.1.3 / 2013-11-06

  • Small Bug fix for global-namespace pollution

0.1.2 / 2013-10-31

  • Updated write concern to avoid annoying notices

0.1.1 / 2013-10-28

  • Removed unecessary UUID code

0.1.0 / 2013-10-28

  • Initial Release