Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit gives "breathing room" allowing code to execute while multiple schedule callbacks are called. ----TEST CODE BLOCK START var schedule = require('node-schedule'); var util = require('util'); util.log("Scheduling 5000 crons"); for (var i = 0; i < 5000; i++) { schedule.scheduleJob('00 45 13 * * *', function(){ }); } util.log("Ok"); var p = new Date().getTime(); setInterval(function () { p = p + 1000; var difference = new Date().getTime() - p; util.log("Difference between expected & actual: " + difference) }, 1000); ----TEST CODE BLOCK END RESULTS BEFORE: 5000 crons fire @1:30:00 (process.nextTick) 23 Feb 13:28:57 - Difference between expected & actual: 270 23 Feb 13:28:58 - Difference between expected & actual: 274 23 Feb 13:28:59 - Difference between expected & actual: 278 23 Feb 13:31:27 - Difference between expected & actual: 147589 23 Feb 13:31:28 - Difference between expected & actual: 147593 23 Feb 13:31:29 - Difference between expected & actual: 147595 23 Feb 13:31:30 - Difference between expected & actual: 147599 (note huge block as schedules fire) RESULTS AFTER: 5000 crons fire @13:45:00 (setImmediate) 23 Feb 13:44:55 - Difference between expected & actual: 34 23 Feb 13:44:56 - Difference between expected & actual: 37 23 Feb 13:44:57 - Difference between expected & actual: 41 23 Feb 13:44:58 - Difference between expected & actual: 42 23 Feb 13:44:59 - Difference between expected & actual: 46 23 Feb 13:45:00 - Difference between expected & actual: 63 23 Feb 13:45:01 - Difference between expected & actual: 89 23 Feb 13:45:02 - Difference between expected & actual: 105 23 Feb 13:45:03 - Difference between expected & actual: 115 23 Feb 13:45:04 - Difference between expected & actual: 131 (Note no more block!)
- Loading branch information