File tree Expand file tree Collapse file tree 1 file changed +18
-2
lines changed Expand file tree Collapse file tree 1 file changed +18
-2
lines changed Original file line number Diff line number Diff line change 11use crate :: storage:: FeedId ;
22use crate :: worker:: Environment ;
3+ use crate :: worker:: jobs:: InvalidateCdns ;
34use anyhow:: Context ;
45use crates_io_worker:: BackgroundJob ;
56use std:: sync:: Arc ;
@@ -25,8 +26,9 @@ impl BackgroundJob for DeleteCrateFromStorage {
2526
2627 async fn run ( & self , ctx : Self :: Context ) -> anyhow:: Result < ( ) > {
2728 let name = & self . name ;
29+ let feed_id = FeedId :: Crate { name } ;
2830
29- try_join ! (
31+ let ( crate_file_paths , readme_paths , _ ) = try_join ! (
3032 async {
3133 info!( "{name}: Deleting crate files from S3…" ) ;
3234 let result = ctx. storage. delete_all_crate_files( name) . await ;
@@ -39,13 +41,27 @@ impl BackgroundJob for DeleteCrateFromStorage {
3941 } ,
4042 async {
4143 info!( "{name}: Deleting RSS feed from S3…" ) ;
42- let feed_id = FeedId :: Crate { name } ;
4344 let result = ctx. storage. delete_feed( & feed_id) . await ;
4445 result. context( "Failed to delete RSS feed from S3" )
4546 }
4647 ) ?;
4748
4849 info ! ( "{name}: Successfully deleted crate from S3" ) ;
50+
51+ info ! ( "{name}: Enqueuing CDN invalidations" ) ;
52+
53+ let mut conn = ctx. deadpool . get ( ) . await ?;
54+ InvalidateCdns :: new (
55+ crate_file_paths
56+ . into_iter ( )
57+ . chain ( readme_paths. into_iter ( ) )
58+ . chain ( std:: iter:: once ( object_store:: path:: Path :: from ( & feed_id) ) ) ,
59+ )
60+ . enqueue ( & mut conn)
61+ . await ?;
62+
63+ info ! ( "{name}: Successfully enqueued CDN invalidations." ) ;
64+
4965 Ok ( ( ) )
5066 }
5167}
You can’t perform that action at this time.
0 commit comments