Comments (6)
Fixed in 5.5.1
from croner.
Hi!
Thanks for reporting!
Until very recently, if you passed an async function, croner just fire-and-forgetted it.
Version ~5.4
introduced a new feature to specify a custom error handler. To make this work i had to await the supplied function (to be able to catch any errors). By mistake await is also run when no custom error handler is passed - so it is a bug. Will have a look at that!
Meanwhile, you can use version 5.3.5
which do not have this behavior.
Verified by
v5.3.5 - OK
import Cron from "https://deno.land/x/[email protected]/src/croner.js";
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
Cron("* * * * * *", async () => {
await sleep(2000);
console.log("This run every second.");
});
v5.4.1 - Not OK
import Cron from "https://deno.land/x/[email protected]/src/croner.js";
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
Cron("* * * * * *", async () => {
await sleep(2000);
console.log("This should run every second, but do only run every 2 seconds.");
});
from croner.
Fixed in 5.4.2
from croner.
Looks like this issue will still appear when catch
is defined, as it's still awaiting the promise.
import cron from "croner";
async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
cron("*/5 * * * * *", async () => {
console.log("Start", new Date().toISOString());
await sleep(10_000);
console.log("End", new Date().toISOString());
})
/*
Output (ok):
Start 2023-02-01T22:49:05.004Z
Start 2023-02-01T22:49:10.004Z
Start 2023-02-01T22:49:15.003Z
End 2023-02-01T22:49:15.044Z
Start 2023-02-01T22:49:20.004Z
End 2023-02-01T22:49:20.006Z
...
The same code, but `catch` is defined (not ok):
Start 2023-02-01T22:53:15.003Z
End 2023-02-01T22:53:25.030Z
Start 2023-02-01T22:53:30.004Z
End 2023-02-01T22:53:40.014Z
*/
Perhaps this could be fixed by using .catch(() => try..catch code here)
without await
instead?
from croner.
Oh, will have a look at this, if you're not up to it? :)
from croner.
I'll look into this now
from croner.
Related Issues (20)
- Whether seven-bit cron expressions are supported ? HOT 2
- Syntax error is service wroker HOT 2
- Cron runs every second instead of every 5 minutes. HOT 1
- Cron Job doesn't run correctly HOT 3
- L5,6 Day of the Week is not working correctly - L is not a number HOT 5
- Croner returns different values in case of trailing whitespace HOT 2
- Race HOT 4
- Fix and add the examples links HOT 1
- Request: Last day minus X HOT 1
- Bug: Increment not work as I expected HOT 3
- Specifying timezone causes no trigger using croner <= 7.x HOT 9
- previousRun and currentRun return null all the time HOT 5
- Using */59 * * * * * make run function twice HOT 1
- Support for modulo operator
- Specific timezones cause high CPU load on UNIX systems using croner <= 7.x HOT 10
- Storing job constant in mongo Db results in error HOT 1
- [Feature Request]: A way to stop all scheduled jobs, but wait for running jobs to complete HOT 2
- Job won't run when scheduled with America/Anchorage time zone HOT 1
- Events Feature request HOT 1
- Allow update HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from croner.