Load jobs from job files in job directory
This commit is contained in:
		
							parent
							
								
									82bd7e2d5c
								
							
						
					
					
						commit
						da4e79463f
					
				
							
								
								
									
										66
									
								
								src/main.rs
								
								
								
								
							
							
						
						
									
										66
									
								
								src/main.rs
								
								
								
								
							|  | @ -82,23 +82,51 @@ fn main() { | ||||||
|         std::process::exit(1); |         std::process::exit(1); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     let mut jobs = Vec::new(); |     let mut jobs: Vec<ThreadJob> = Vec::new(); | ||||||
|     let some_job = Job::new("https://www.rust-lang.org", "a.download-link", &conf); | 
 | ||||||
|     let other_job = Job::new( |     // Load all jobs from job directory
 | ||||||
|         "https://arstechnica.com/", |     let job_dir = conf.job_dir.clone(); | ||||||
|         "section.listing:nth-child(2) > ul:nth-child(1) > li:nth-child(3) > header:nth-child(3) > h2:nth-child(1) > a:nth-child(1)", |     for entry in std::fs::read_dir(job_dir).expect("Failed to iterate over job directory") { | ||||||
|         &conf |         let _entry = match entry { | ||||||
|     ); |             Err(why) => { | ||||||
|     jobs.push(ThreadJob { |                 println!("Skipping '{}': Error reading file in job directory", why); | ||||||
|         job: some_job, |                 continue; | ||||||
|         handle: None, |             }, | ||||||
|         last_result: None, |             Ok(value) => value, | ||||||
|     }); |         }; | ||||||
|     jobs.push(ThreadJob { |         let md = _entry.metadata().expect("Failed to read file metadata"); | ||||||
|         job: other_job, |         if !md.is_file() { | ||||||
|         handle: None, |             println!("Skipping '{}': not a file", _entry.path().display()); | ||||||
|         last_result: None, |             continue; | ||||||
|     }); |         } | ||||||
|  |         match _entry.path().extension() { | ||||||
|  |             Some(x) => { | ||||||
|  |                 if ! "job".eq(x) { | ||||||
|  |                     println!("Skipping '{}': does not have '.job' extension", | ||||||
|  |                              _entry.path().display()); | ||||||
|  |                     continue; | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             None => { | ||||||
|  |                 println!("Skipping '{}': does not have '.job' extension", | ||||||
|  |                          _entry.path().display()); | ||||||
|  |                 continue; | ||||||
|  |             } | ||||||
|  |         }; | ||||||
|  | 
 | ||||||
|  |         let job = match Job::from_file(&_entry.path(), &conf) { | ||||||
|  |             Err(why) => { | ||||||
|  |                 println!("Failed to load job from '{}': {}", _entry.path().display(), why); | ||||||
|  |                 continue; | ||||||
|  |             }, | ||||||
|  |             Ok(value) => value, | ||||||
|  |         }; | ||||||
|  |         jobs.push(ThreadJob { | ||||||
|  |             job: job, | ||||||
|  |             handle: None, | ||||||
|  |             last_result: None, | ||||||
|  |         }); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     let max_running_tasks = 5; |     let max_running_tasks = 5; | ||||||
|     loop { |     loop { | ||||||
|  | @ -164,10 +192,6 @@ fn main() { | ||||||
|                         break; |                         break; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|                 else { |  | ||||||
|                     let time_since_last_run = Instant::now().duration_since(tj.job.last_run.unwrap()); |  | ||||||
|                     println!("Job '{}' - {}s since last run", tj.job.url, time_since_last_run.as_secs()); |  | ||||||
|                 } |  | ||||||
|             } |             } | ||||||
|             break; |             break; | ||||||
|         } |         } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue