Lines Matching refs:task
18 use std::task::{Context, Poll};
28 use crate::task::info::State;
29 use crate::task::request_task::RequestTask;
58 task: Arc<RequestTask>,
62 let task_operator = TaskOperator::new(task, abort_flag);
72 pub(crate) async fn download(task: Arc<RequestTask>, abort_flag: Arc<AtomicBool>) {
73 task.tries.store(0, Ordering::SeqCst);
75 if let Err(e) = download_inner(task.clone(), abort_flag.clone()).await {
83 *task.running_result.lock().unwrap() = Some(Err(Reason::NetworkOffline));
87 *task.running_result.lock().unwrap() = Some(Err(reason));
91 *task.running_result.lock().unwrap() = Some(Ok(()));
113 task: Arc<RequestTask>,
120 task.prepare_download().await?;
122 info!("download task {} running", task.task_id());
124 let request = task.build_download_request().await?;
126 let response = task.client.request(request).await;
131 task.notify_response(response);
133 "task {} get response {}",
134 task.conf.common_data.task_id, status_code
143 if task.timeout_tries.load(Ordering::SeqCst) < 2 {
144 task.timeout_tries.fetch_add(1, Ordering::SeqCst);
150 task.timeout_tries.store(0, Ordering::SeqCst);
153 if task.require_range() {
154 info!("task {} server not support range", task.task_id());
157 let file = task.files.get(0).unwrap();
160 error!("task {} file not cleared", task.task_id());
161 task.clear_downloaded_file().await?;
166 error!("Task {} {:?}", task.task_id(), e);
173 task.network_retry().await?;
183 task.network_retry().await?;
199 let mut guard = task.progress.lock().unwrap();
207 task.get_file_info(&response)?;
208 task.update_progress_in_database();
210 .update_task_sizes(task.task_id(), &task.progress.lock().unwrap().sizes);
215 task.task_id(),
216 task.progress.lock().unwrap().sizes[0]
218 let mut downloader = build_downloader(task.clone(), response, abort_flag);
221 return task.handle_download_error(e).await;
223 let file = task.files.get_mut(0).unwrap();
227 check_file_exist(&task)?;
229 let mut guard = task.progress.lock().unwrap();
233 info!("task {} download ok", task.task_id());
238 fn check_file_exist(task: &Arc<RequestTask>) -> Result<(), TaskError> {
239 use crate::task::files::{check_atomic_convert_path, convert_path};
240 use crate::task::ATOMIC_SERVICE;
242 let config = task.config();
253 // Cannot compare param because file_total_size will be changed when resume task
259 error!("task {} local not file", task.task_id());
264 error!("task {} local not exist:{}", task.task_id(), e);
288 use crate::task::download::{download_inner, TaskPhase};
289 use crate::task::reason::Reason;
290 use crate::task::request_task::{check_config, RequestTask, TaskError};
306 let task = Arc::new(RequestTask::new(
313 task.status.lock().unwrap().state = State::Initialized;
314 task
336 let task = build_task(config);
338 download_inner(task).await.unwrap();
359 let task = build_task(config);
361 download_inner(task).await.unwrap();
382 let task = build_task(config);
384 let res = download_inner(task).await.unwrap_err();
405 let task = build_task(config);
407 let clone_task = task.clone();
412 let err = download_inner(task.clone()).await.unwrap_err();
415 let file = task.files.get_mut(0).unwrap();
419 download_inner(task.clone()).await.unwrap();
441 let task = build_task(config);
443 let res = download_inner(task).await.unwrap_err();
464 let task = build_task(config);
466 download_inner(task).await.unwrap();
486 let task = build_task(config);
488 download_inner(task).await.unwrap();
508 let task = build_task(config);
510 download_inner(task).await.unwrap();
530 let task = build_task(config);
532 let clone_task = task.clone();
537 let ret = download_inner(task.clone()).await.unwrap_err();
541 download_inner(task.clone()).await.unwrap();
560 let task = build_task(config);
562 let mut progress = task.progress.lock().unwrap();
570 download_inner(task.clone()).await.unwrap();
574 assert_eq!(State::Completed, task.status.lock().unwrap().state);
575 assert_eq!(0, task.progress.lock().unwrap().common_data.index);
578 task.progress.lock().unwrap().common_data.total_processed as u64
582 task.progress.lock().unwrap().processed[0] as u64
586 task.progress.lock().unwrap().sizes[0] as u64
607 let task = build_task(config);
609 let mut progress = task.progress.lock().unwrap();
617 let err = download_inner(task.clone()).await.unwrap_err();
619 let sizes = task.progress.lock().unwrap().sizes.clone();