From fa1ba256d20236042455abb31a92d2a1d27ee58f Mon Sep 17 00:00:00 2001 From: Felipe Baltor Date: Thu, 23 May 2024 08:59:11 -0300 Subject: refactor: remove custom `utc_now` in favor of `chrono::Utc:now` feature (#23888) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- ext/cron/lib.rs | 1 - ext/cron/local.rs | 10 +++++----- ext/cron/time.rs | 15 --------------- 3 files changed, 5 insertions(+), 21 deletions(-) delete mode 100644 ext/cron/time.rs (limited to 'ext/cron') 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)>, 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 { - 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::() { @@ -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 { - 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() -} -- cgit v1.2.3