mirror of
https://github.com/nukesor/pueue
synced 2024-10-15 12:12:52 +00:00
Fix: Remove 'Killed' tasks on 'clean'
This commit is contained in:
parent
f7813736ad
commit
3638f6562f
|
@ -1,3 +1,8 @@
|
|||
# v0.2.1
|
||||
**Fixes:**
|
||||
- Respect `Killed` tasks on `pueue clean`.
|
||||
|
||||
|
||||
# v0.2.0
|
||||
**Features:**
|
||||
- New `--delay` flag, which delays enqueueing of a task. Can be used on `start` and `enqueue`.
|
||||
|
|
|
@ -120,8 +120,10 @@ fn switch(message: SwitchMessage, state: &SharedState) -> Message {
|
|||
fn stash(message: StashMessage, state: &SharedState) -> Message {
|
||||
let (matching, mismatching) = {
|
||||
let mut state = state.lock().unwrap();
|
||||
let (matching, mismatching) =
|
||||
state.tasks_in_statuses(vec![TaskStatus::Queued, TaskStatus::Locked], Some(message.task_ids));
|
||||
let (matching, mismatching) = state.tasks_in_statuses(
|
||||
vec![TaskStatus::Queued, TaskStatus::Locked],
|
||||
Some(message.task_ids),
|
||||
);
|
||||
|
||||
for task_id in &matching {
|
||||
state.change_status(*task_id, TaskStatus::Stashed);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use ::anyhow::{Result, anyhow};
|
||||
use ::anyhow::{anyhow, Result};
|
||||
use ::async_std::net::{TcpListener, TcpStream};
|
||||
use ::async_std::task;
|
||||
use ::log::{info, warn};
|
||||
|
|
|
@ -108,7 +108,9 @@ impl TaskHandler {
|
|||
let task = state.tasks.get_mut(&task_id);
|
||||
let task = match task {
|
||||
Some(task) => {
|
||||
if !vec![TaskStatus::Stashed, TaskStatus::Queued, TaskStatus::Paused].contains(&task.status) {
|
||||
if !vec![TaskStatus::Stashed, TaskStatus::Queued, TaskStatus::Paused]
|
||||
.contains(&task.status)
|
||||
{
|
||||
info!("Tried to start task with status: {}", task.status);
|
||||
return;
|
||||
}
|
||||
|
@ -181,7 +183,7 @@ impl TaskHandler {
|
|||
let mut changed = false;
|
||||
for (_, task) in state.tasks.iter_mut() {
|
||||
if task.status != TaskStatus::Stashed {
|
||||
continue
|
||||
continue;
|
||||
}
|
||||
|
||||
if let Some(time) = task.enqueue_at {
|
||||
|
|
|
@ -131,7 +131,7 @@ impl State {
|
|||
/// Remove all finished tasks (clean up the task queue)
|
||||
pub fn clean(&mut self) {
|
||||
self.backup();
|
||||
let statuses = vec![TaskStatus::Done, TaskStatus::Failed];
|
||||
let statuses = vec![TaskStatus::Done, TaskStatus::Failed, TaskStatus::Killed];
|
||||
let (matching, _) = self.tasks_in_statuses(statuses, None);
|
||||
|
||||
for task_id in &matching {
|
||||
|
@ -245,7 +245,12 @@ impl State {
|
|||
for (task_id, task) in state.tasks.iter_mut() {
|
||||
// Handle ungraceful shutdowns while executing tasks
|
||||
if task.status == TaskStatus::Running || task.status == TaskStatus::Paused {
|
||||
info!("Setting task {} with previous status {:?} to new status {:?}", task.id, task.status, TaskStatus::Killed);
|
||||
info!(
|
||||
"Setting task {} with previous status {:?} to new status {:?}",
|
||||
task.id,
|
||||
task.status,
|
||||
TaskStatus::Killed
|
||||
);
|
||||
task.status = TaskStatus::Killed;
|
||||
}
|
||||
// Crash during editing of the task command
|
||||
|
|
Loading…
Reference in a new issue