@@ -10,7 +10,7 @@ use rand::{thread_rng, Rng};
10
10
use serde:: ser:: SerializeStruct ;
11
11
use serde:: { Serialize , Serializer } ;
12
12
13
- use chrono :: { DateTime , Duration , Local } ;
13
+ use time :: { OffsetDateTime , Duration } ;
14
14
15
15
const REDIS_URL_ENV : & str = "REDIS_URL" ;
16
16
const REDIS_URL_DEFAULT : & str = "redis://127.0.0.1/" ;
@@ -205,7 +205,7 @@ impl Client {
205
205
let div: f64 = 1_000_f64 ;
206
206
let maximum_target: f64 = 1_000_000_000_f64 ;
207
207
let target_millsec: f64 = target_millsec_number / div;
208
- let now_millisec: f64 = Local :: now ( ) . timestamp_millis ( ) as f64 / div;
208
+ let now_millisec = SystemTime :: now ( ) . duration_since ( UNIX_EPOCH ) . unwrap ( ) . as_secs ( ) as f64 / div;
209
209
210
210
let start_at: f64 = if target_millsec < maximum_target {
211
211
now_millisec + target_millsec
@@ -221,20 +221,20 @@ impl Client {
221
221
}
222
222
223
223
fn convert_duration_to_millsec ( & self , interval : Duration ) -> Option < f64 > {
224
- let interval_millsec: f64 = interval. num_milliseconds ( ) as f64 ;
224
+ let interval_millsec: f64 = interval. subsec_milliseconds ( ) as f64 ;
225
225
self . calc_at ( interval_millsec)
226
226
}
227
227
228
- fn convert_datetime_to_millsec ( & self , datetime : DateTime < Local > ) -> Option < f64 > {
229
- let timestamp_millsec: f64 = datetime. timestamp_millis ( ) as f64 ;
228
+ fn convert_datetime_to_millsec ( & self , datetime : OffsetDateTime ) -> Option < f64 > {
229
+ let timestamp_millsec: f64 = datetime. millisecond ( ) as f64 ;
230
230
self . calc_at ( timestamp_millsec)
231
231
}
232
232
233
233
pub fn perform_in ( & self , interval : Duration , job : Job ) -> Result < ( ) , ClientError > {
234
234
self . raw_push ( & [ job] , self . convert_duration_to_millsec ( interval) )
235
235
}
236
236
237
- pub fn perform_at ( & self , local_datetime : DateTime < Local > , job : Job ) -> Result < ( ) , ClientError > {
237
+ pub fn perform_at ( & self , local_datetime : OffsetDateTime , job : Job ) -> Result < ( ) , ClientError > {
238
238
self . raw_push ( & [ job] , self . convert_datetime_to_millsec ( local_datetime) )
239
239
}
240
240
0 commit comments