mirror of
https://github.com/hibiken/asynqmon.git
synced 2025-01-18 18:55:54 +08:00
Add redux actions/reducer for aggregating task actions
This commit is contained in:
parent
c139200b10
commit
b9254e8c65
@ -50,6 +50,7 @@ import {
|
|||||||
archiveAllPendingTasks,
|
archiveAllPendingTasks,
|
||||||
TaskInfo,
|
TaskInfo,
|
||||||
getTaskInfo,
|
getTaskInfo,
|
||||||
|
deleteAllAggregatingTasks,
|
||||||
} from "../api";
|
} from "../api";
|
||||||
import { Dispatch } from "redux";
|
import { Dispatch } from "redux";
|
||||||
import { toErrorString, toErrorStringWithHttpStatus } from "../utils";
|
import { toErrorString, toErrorStringWithHttpStatus } from "../utils";
|
||||||
@ -235,6 +236,42 @@ export const BATCH_DELETE_COMPLETED_TASKS_SUCCESS =
|
|||||||
"BATCH_DELETE_COMPLETED_TASKS_SUCCESS";
|
"BATCH_DELETE_COMPLETED_TASKS_SUCCESS";
|
||||||
export const BATCH_DELETE_COMPLETED_TASKS_ERROR =
|
export const BATCH_DELETE_COMPLETED_TASKS_ERROR =
|
||||||
"BATCH_DELETE_COMPLETED_TASKS_ERROR";
|
"BATCH_DELETE_COMPLETED_TASKS_ERROR";
|
||||||
|
export const BATCH_RUN_AGGREGATING_TASKS_BEGIN =
|
||||||
|
"BATCH_RUN_AGGREGATING_TASKS_BEGIN";
|
||||||
|
export const BATCH_RUN_AGGREGATING_TASKS_SUCCESS =
|
||||||
|
"BATCH_RUN_AGGREGATING_TASKS_SUCCESS";
|
||||||
|
export const BATCH_RUN_AGGREGATING_TASKS_ERROR =
|
||||||
|
"BATCH_RUN_AGGREGATING_TASKS_ERROR";
|
||||||
|
export const BATCH_ARCHIVE_AGGREGATING_TASKS_BEGIN =
|
||||||
|
"BATCH_ARCHIVE_AGGREGATING_TASKS_BEGIN";
|
||||||
|
export const BATCH_ARCHIVE_AGGREGATING_TASKS_SUCCESS =
|
||||||
|
"BATCH_ARCHIVE_AGGREGATING_TASKS_SUCCESS";
|
||||||
|
export const BATCH_ARCHIVE_AGGREGATING_TASKS_ERROR =
|
||||||
|
"BATCH_RUN_AGGREGATING_TASKS_ERROR";
|
||||||
|
export const BATCH_DELETE_AGGREGATING_TASKS_BEGIN =
|
||||||
|
"BATCH_DELETE_AGGREGATING_TASKS_BEGIN";
|
||||||
|
export const BATCH_DELETE_AGGREGATING_TASKS_SUCCESS =
|
||||||
|
"BATCH_DELETE_AGGREGATING_TASKS_SUCCESS";
|
||||||
|
export const BATCH_DELETE_AGGREGATING_TASKS_ERROR =
|
||||||
|
"BATCH_DELETE_AGGREGATING_TASKS_ERROR";
|
||||||
|
export const RUN_ALL_AGGREGATING_TASKS_BEGIN =
|
||||||
|
"RUN_ALL_AGGREGATING_TASKS_BEGIN";
|
||||||
|
export const RUN_ALL_AGGREGATING_TASKS_SUCCESS =
|
||||||
|
"RUN_ALL_AGGREGATING_TASKS_SUCCESS";
|
||||||
|
export const RUN_ALL_AGGREGATING_TASKS_ERROR =
|
||||||
|
"RUN_ALL_AGGREGATING_TASKS_ERROR";
|
||||||
|
export const ARCHIVE_ALL_AGGREGATING_TASKS_BEGIN =
|
||||||
|
"ARCHIVE_ALL_AGGREGATING_TASKS_BEGIN";
|
||||||
|
export const ARCHIVE_ALL_AGGREGATING_TASKS_SUCCESS =
|
||||||
|
"ARCHIVE_ALL_AGGREGATING_TASKS_SUCCESS";
|
||||||
|
export const ARCHIVE_ALL_AGGREGATING_TASKS_ERROR =
|
||||||
|
"ARCHIVE_ALL_AGGREGATING_TASKS_ERROR";
|
||||||
|
export const DELETE_ALL_AGGREGATING_TASKS_BEGIN =
|
||||||
|
"DELETE_ALL_AGGREGATING_TASKS_BEGIN";
|
||||||
|
export const DELETE_ALL_AGGREGATING_TASKS_SUCCESS =
|
||||||
|
"DELETE_ALL_AGGREGATING_TASKS_SUCCESS";
|
||||||
|
export const DELETE_ALL_AGGREGATING_TASKS_ERROR =
|
||||||
|
"DELETE_ALL_AGGREGATING_TASKS_ERROR";
|
||||||
|
|
||||||
interface GetTaskInfoBeginAction {
|
interface GetTaskInfoBeginAction {
|
||||||
type: typeof GET_TASK_INFO_BEGIN;
|
type: typeof GET_TASK_INFO_BEGIN;
|
||||||
@ -1025,6 +1062,124 @@ interface DeleteAllCompletedTasksErrorAction {
|
|||||||
error: string;
|
error: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface BatchDeleteAggregatingTasksBeginAction {
|
||||||
|
type: typeof BATCH_DELETE_AGGREGATING_TASKS_BEGIN;
|
||||||
|
queue: string;
|
||||||
|
taskIds: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchDeleteAggregatingTasksSuccessAction {
|
||||||
|
type: typeof BATCH_DELETE_AGGREGATING_TASKS_SUCCESS;
|
||||||
|
queue: string;
|
||||||
|
payload: BatchDeleteTasksResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchDeleteAggregatingTasksErrorAction {
|
||||||
|
type: typeof BATCH_DELETE_AGGREGATING_TASKS_ERROR;
|
||||||
|
queue: string;
|
||||||
|
taskIds: string[];
|
||||||
|
error: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchRunAggregatingTasksBeginAction {
|
||||||
|
type: typeof BATCH_RUN_AGGREGATING_TASKS_BEGIN;
|
||||||
|
queue: string;
|
||||||
|
taskIds: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchRunAggregatingTasksSuccessAction {
|
||||||
|
type: typeof BATCH_RUN_AGGREGATING_TASKS_SUCCESS;
|
||||||
|
queue: string;
|
||||||
|
payload: BatchRunTasksResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchRunAggregatingTasksErrorAction {
|
||||||
|
type: typeof BATCH_RUN_AGGREGATING_TASKS_ERROR;
|
||||||
|
queue: string;
|
||||||
|
taskIds: string[];
|
||||||
|
error: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RunAllAggregatingTasksBeginAction {
|
||||||
|
type: typeof RUN_ALL_AGGREGATING_TASKS_BEGIN;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RunAllAggregatingTasksSuccessAction {
|
||||||
|
type: typeof RUN_ALL_AGGREGATING_TASKS_SUCCESS;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RunAllAggregatingTasksErrorAction {
|
||||||
|
type: typeof RUN_ALL_AGGREGATING_TASKS_ERROR;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
error: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchArchiveAggregatingTasksBeginAction {
|
||||||
|
type: typeof BATCH_ARCHIVE_AGGREGATING_TASKS_BEGIN;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
taskIds: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchArchiveAggregatingTasksSuccessAction {
|
||||||
|
type: typeof BATCH_ARCHIVE_AGGREGATING_TASKS_SUCCESS;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
payload: BatchArchiveTasksResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatchArchiveAggregatingTasksErrorAction {
|
||||||
|
type: typeof BATCH_ARCHIVE_AGGREGATING_TASKS_ERROR;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
taskIds: string[];
|
||||||
|
error: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ArchiveAllAggregatingTasksBeginAction {
|
||||||
|
type: typeof ARCHIVE_ALL_AGGREGATING_TASKS_BEGIN;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ArchiveAllAggregatingTasksSuccessAction {
|
||||||
|
type: typeof ARCHIVE_ALL_AGGREGATING_TASKS_SUCCESS;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ArchiveAllAggregatingTasksErrorAction {
|
||||||
|
type: typeof ARCHIVE_ALL_AGGREGATING_TASKS_ERROR;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
error: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeleteAllAggregatingTasksBeginAction {
|
||||||
|
type: typeof DELETE_ALL_AGGREGATING_TASKS_BEGIN;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeleteAllAggregatingTasksSuccessAction {
|
||||||
|
type: typeof DELETE_ALL_AGGREGATING_TASKS_SUCCESS;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
deleted: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DeleteAllAggregatingTasksErrorAction {
|
||||||
|
type: typeof DELETE_ALL_AGGREGATING_TASKS_ERROR;
|
||||||
|
queue: string;
|
||||||
|
group: string;
|
||||||
|
error: string;
|
||||||
|
}
|
||||||
|
|
||||||
// Union of all tasks related action types.
|
// Union of all tasks related action types.
|
||||||
export type TasksActionTypes =
|
export type TasksActionTypes =
|
||||||
| GetTaskInfoBeginAction
|
| GetTaskInfoBeginAction
|
||||||
@ -1158,7 +1313,25 @@ export type TasksActionTypes =
|
|||||||
| BatchDeleteCompletedTasksErrorAction
|
| BatchDeleteCompletedTasksErrorAction
|
||||||
| DeleteAllCompletedTasksBeginAction
|
| DeleteAllCompletedTasksBeginAction
|
||||||
| DeleteAllCompletedTasksSuccessAction
|
| DeleteAllCompletedTasksSuccessAction
|
||||||
| DeleteAllCompletedTasksErrorAction;
|
| DeleteAllCompletedTasksErrorAction
|
||||||
|
| BatchDeleteAggregatingTasksBeginAction
|
||||||
|
| BatchDeleteAggregatingTasksSuccessAction
|
||||||
|
| BatchDeleteAggregatingTasksErrorAction
|
||||||
|
| BatchRunAggregatingTasksBeginAction
|
||||||
|
| BatchRunAggregatingTasksSuccessAction
|
||||||
|
| BatchRunAggregatingTasksErrorAction
|
||||||
|
| RunAllAggregatingTasksBeginAction
|
||||||
|
| RunAllAggregatingTasksSuccessAction
|
||||||
|
| RunAllAggregatingTasksErrorAction
|
||||||
|
| BatchArchiveAggregatingTasksBeginAction
|
||||||
|
| BatchArchiveAggregatingTasksSuccessAction
|
||||||
|
| BatchArchiveAggregatingTasksErrorAction
|
||||||
|
| ArchiveAllAggregatingTasksBeginAction
|
||||||
|
| ArchiveAllAggregatingTasksSuccessAction
|
||||||
|
| ArchiveAllAggregatingTasksErrorAction
|
||||||
|
| DeleteAllAggregatingTasksBeginAction
|
||||||
|
| DeleteAllAggregatingTasksSuccessAction
|
||||||
|
| DeleteAllAggregatingTasksErrorAction;
|
||||||
|
|
||||||
export function getTaskInfoAsync(qname: string, id: string) {
|
export function getTaskInfoAsync(qname: string, id: string) {
|
||||||
return async (dispatch: Dispatch<TasksActionTypes>) => {
|
return async (dispatch: Dispatch<TasksActionTypes>) => {
|
||||||
@ -1784,6 +1957,32 @@ export function deleteAllPendingTasksAsync(queue: string) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function deleteAllAggregatingTasksAsync(queue: string, group: string) {
|
||||||
|
return async (dispatch: Dispatch<TasksActionTypes>) => {
|
||||||
|
dispatch({ type: DELETE_ALL_AGGREGATING_TASKS_BEGIN, queue, group });
|
||||||
|
try {
|
||||||
|
const response = await deleteAllAggregatingTasks(queue, group);
|
||||||
|
dispatch({
|
||||||
|
type: DELETE_ALL_AGGREGATING_TASKS_SUCCESS,
|
||||||
|
deleted: response.deleted,
|
||||||
|
queue,
|
||||||
|
group,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error(
|
||||||
|
"deleteAllAggregatingTasksAsync: ",
|
||||||
|
toErrorStringWithHttpStatus(error)
|
||||||
|
);
|
||||||
|
dispatch({
|
||||||
|
type: DELETE_ALL_AGGREGATING_TASKS_ERROR,
|
||||||
|
error: toErrorString(error),
|
||||||
|
queue,
|
||||||
|
group,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export function deleteAllScheduledTasksAsync(queue: string) {
|
export function deleteAllScheduledTasksAsync(queue: string) {
|
||||||
return async (dispatch: Dispatch<TasksActionTypes>) => {
|
return async (dispatch: Dispatch<TasksActionTypes>) => {
|
||||||
dispatch({ type: DELETE_ALL_SCHEDULED_TASKS_BEGIN, queue });
|
dispatch({ type: DELETE_ALL_SCHEDULED_TASKS_BEGIN, queue });
|
||||||
|
@ -34,7 +34,10 @@ import { TableColumn } from "../types/table";
|
|||||||
import TablePaginationActions, {
|
import TablePaginationActions, {
|
||||||
rowsPerPageOptions,
|
rowsPerPageOptions,
|
||||||
} from "./TablePaginationActions";
|
} from "./TablePaginationActions";
|
||||||
import { listAggregatingTasksAsync } from "../actions/tasksActions";
|
import {
|
||||||
|
listAggregatingTasksAsync,
|
||||||
|
deleteAllAggregatingTasksAsync,
|
||||||
|
} from "../actions/tasksActions";
|
||||||
import { taskRowsPerPageChange } from "../actions/settingsActions";
|
import { taskRowsPerPageChange } from "../actions/settingsActions";
|
||||||
|
|
||||||
const useStyles = makeStyles((theme) => ({
|
const useStyles = makeStyles((theme) => ({
|
||||||
@ -75,6 +78,7 @@ function mapStateToProps(state: AppState) {
|
|||||||
const mapDispatchToProps = {
|
const mapDispatchToProps = {
|
||||||
listGroupsAsync,
|
listGroupsAsync,
|
||||||
listAggregatingTasksAsync,
|
listAggregatingTasksAsync,
|
||||||
|
deleteAllAggregatingTasksAsync,
|
||||||
taskRowsPerPageChange,
|
taskRowsPerPageChange,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -131,6 +135,13 @@ function AggregatingTasksTable(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleDeleteAllClick = () => {
|
||||||
|
if (selectedGroup === null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
props.deleteAllAggregatingTasksAsync(queue, selectedGroup.group);
|
||||||
|
};
|
||||||
|
|
||||||
const fetchGroups = useCallback(() => {
|
const fetchGroups = useCallback(() => {
|
||||||
listGroupsAsync(queue);
|
listGroupsAsync(queue);
|
||||||
}, [listGroupsAsync, queue]);
|
}, [listGroupsAsync, queue]);
|
||||||
@ -194,7 +205,7 @@ function AggregatingTasksTable(
|
|||||||
menuItemActions={[
|
menuItemActions={[
|
||||||
{
|
{
|
||||||
label: "Delete All",
|
label: "Delete All",
|
||||||
onClick: () => {}, //TODO: handleDeleteAllClick,
|
onClick: handleDeleteAllClick,
|
||||||
disabled: false, // TODO: props.allActionPending,
|
disabled: false, // TODO: props.allActionPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -132,6 +132,9 @@ import {
|
|||||||
LIST_AGGREGATING_TASKS_BEGIN,
|
LIST_AGGREGATING_TASKS_BEGIN,
|
||||||
LIST_AGGREGATING_TASKS_SUCCESS,
|
LIST_AGGREGATING_TASKS_SUCCESS,
|
||||||
LIST_AGGREGATING_TASKS_ERROR,
|
LIST_AGGREGATING_TASKS_ERROR,
|
||||||
|
DELETE_ALL_AGGREGATING_TASKS_BEGIN,
|
||||||
|
DELETE_ALL_AGGREGATING_TASKS_SUCCESS,
|
||||||
|
DELETE_ALL_AGGREGATING_TASKS_ERROR,
|
||||||
} from "../actions/tasksActions";
|
} from "../actions/tasksActions";
|
||||||
import { TaskInfo } from "../api";
|
import { TaskInfo } from "../api";
|
||||||
|
|
||||||
@ -1402,6 +1405,44 @@ function tasksReducer(
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
case DELETE_ALL_AGGREGATING_TASKS_BEGIN:
|
||||||
|
if (state.aggregatingTasks.group !== action.group) {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
aggregatingTasks: {
|
||||||
|
...state.aggregatingTasks,
|
||||||
|
allActionPending: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
case DELETE_ALL_AGGREGATING_TASKS_SUCCESS:
|
||||||
|
if (state.aggregatingTasks.group !== action.group) {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
aggregatingTasks: {
|
||||||
|
...state.aggregatingTasks,
|
||||||
|
allActionPending: false,
|
||||||
|
data: [],
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
case DELETE_ALL_AGGREGATING_TASKS_ERROR:
|
||||||
|
if (state.aggregatingTasks.group !== action.group) {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
aggregatingTasks: {
|
||||||
|
...state.aggregatingTasks,
|
||||||
|
allActionPending: false,
|
||||||
|
error: action.error,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user