summaryrefslogtreecommitdiff
path: root/ext/cron
diff options
context:
space:
mode:
authorFelipe Baltor <fbaltor@gmail.com>2024-05-23 08:59:11 -0300
committerGitHub <noreply@github.com>2024-05-23 13:59:11 +0200
commitfa1ba256d20236042455abb31a92d2a1d27ee58f (patch)
treecd81e32852e4762f38fffb29ce462f09eab0f0e9 /ext/cron
parentfa273509771c01d603d403002481bc1d01e4dd8b (diff)
refactor: remove custom `utc_now` in favor of `chrono::Utc:now` feature (#23888)
This PR removes the use of the custom `utc_now` function in favor of the `chrono` implementation. It resolves #22864. --------- Co-authored-by: Bartek IwaƄczuk <biwanczuk@gmail.com>
Diffstat (limited to 'ext/cron')
-rw-r--r--ext/cron/lib.rs1
-rw-r--r--ext/cron/local.rs10
-rw-r--r--ext/cron/time.rs15
3 files changed, 5 insertions, 21 deletions
diff --git a/ext/cron/lib.rs b/ext/cron/lib.rs
index 4f4d0e05c..a0f1c44e1 100644
--- a/ext/cron/lib.rs
+++ b/ext/cron/lib.rs
@@ -2,7 +2,6 @@
mod interface;
pub mod local;
-mod time;
use std::borrow::Cow;
use std::cell::RefCell;
diff --git a/ext/cron/local.rs b/ext/cron/local.rs
index 945df0796..dd60e750a 100644
--- a/ext/cron/local.rs
+++ b/ext/cron/local.rs
@@ -91,7 +91,7 @@ impl LocalCronHandler {
.copied();
let sleep_fut = if let Some(earliest_deadline) = earliest_deadline {
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
if let Some(delta) = earliest_deadline.checked_sub(now) {
tokio::time::sleep(std::time::Duration::from_millis(delta)).boxed()
} else {
@@ -121,7 +121,7 @@ impl LocalCronHandler {
{
let backoff_ms =
backoff_schedule[cron.current_execution_retries as usize];
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
cron.current_execution_retries += 1;
now + backoff_ms as u64
} else {
@@ -155,7 +155,7 @@ impl RuntimeState {
fn get_ready_crons(
&mut self,
) -> Result<Vec<(String, WeakSender<()>)>, AnyError> {
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
let ready = {
let to_remove = self
@@ -301,7 +301,7 @@ impl CronHandle for CronExecutionHandle {
}
fn compute_next_deadline(cron_expression: &str) -> Result<u64, AnyError> {
- let now = crate::time::utc_now();
+ let now = chrono::Utc::now();
if let Ok(test_schedule) = env::var("DENO_CRON_TEST_SCHEDULE_OFFSET") {
if let Ok(offset) = test_schedule.parse::<u64>() {
@@ -334,7 +334,7 @@ mod tests {
#[test]
fn test_compute_next_deadline() {
- let now = crate::time::utc_now().timestamp_millis() as u64;
+ let now = chrono::Utc::now().timestamp_millis() as u64;
assert!(compute_next_deadline("*/1 * * * *").unwrap() > now);
assert!(compute_next_deadline("* * * * *").unwrap() > now);
assert!(compute_next_deadline("bogus").is_err());
diff --git a/ext/cron/time.rs b/ext/cron/time.rs
deleted file mode 100644
index 3a5565332..000000000
--- a/ext/cron/time.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-
-/// Identical to chrono::Utc::now() but without the system "clock"
-/// feature flag.
-///
-/// The "clock" feature flag pulls in the "iana-time-zone" crate
-/// which links to macOS's "CoreFoundation" framework which increases
-/// startup time for the CLI.
-pub fn utc_now() -> chrono::DateTime<chrono::Utc> {
- let now = std::time::SystemTime::now()
- .duration_since(std::time::UNIX_EPOCH)
- .expect("system time before Unix epoch");
- chrono::DateTime::from_timestamp(now.as_secs() as i64, now.subsec_nanos())
- .unwrap()
-}