[PR #245] Implement in-browser task search #288

Open
opened 2026-03-02 05:19:37 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hibiken/asynqmon/pull/245
Author: @andy-opal
Created: 5/18/2022
Status: 🔄 Open

Base: masterHead: task-search


📝 Commits (1)

  • 2ec7a68 Implement in-browser task search

📊 Changes

9 files changed (+1008 additions, -229 deletions)

View changed files

📝 ui/src/actions/tasksActions.ts (+256 -12)
ui/src/components/TasksFilterDialog.tsx (+165 -0)
ui/src/components/TasksFilterProgressDialog.tsx (+55 -0)
📝 ui/src/components/TasksTable.tsx (+56 -29)
📝 ui/src/components/TasksTableContainer.tsx (+129 -16)
ui/src/reducers/filterReducer.ts (+149 -0)
📝 ui/src/reducers/queuesReducer.ts (+44 -32)
📝 ui/src/reducers/tasksReducer.ts (+148 -140)
📝 ui/src/store.ts (+6 -0)

📄 Description

This PR implements searching through tasks by keyword, regex or custom JS code. The search is executed in the browser.

Due to the nature of this PR, the implementation has some hacks, please let me know if you have suggestions for better approaches or improvement ideas.

Caveats

  • Searching aggregating tasks is not supported yet
  • As the search is performed in the browser, and since we are restricted to linear search, this approach does not scale very well. However:
    • I have tested it with 100K tasks with each task containing a ~500 char JSON object. The search completes in roughly 10s and JS heap usage increased by 70MB after the search. Therefore I expect this implementation will be fine for at least 1 mil tasks.

Demo video

https://user-images.githubusercontent.com/105025270/168958901-765a73cf-42de-4170-8445-de236cc150be.mp4


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hibiken/asynqmon/pull/245 **Author:** [@andy-opal](https://github.com/andy-opal) **Created:** 5/18/2022 **Status:** 🔄 Open **Base:** `master` ← **Head:** `task-search` --- ### 📝 Commits (1) - [`2ec7a68`](https://github.com/hibiken/asynqmon/commit/2ec7a68d4a3223fc738ac36266efb579852179a8) Implement in-browser task search ### 📊 Changes **9 files changed** (+1008 additions, -229 deletions) <details> <summary>View changed files</summary> 📝 `ui/src/actions/tasksActions.ts` (+256 -12) ➕ `ui/src/components/TasksFilterDialog.tsx` (+165 -0) ➕ `ui/src/components/TasksFilterProgressDialog.tsx` (+55 -0) 📝 `ui/src/components/TasksTable.tsx` (+56 -29) 📝 `ui/src/components/TasksTableContainer.tsx` (+129 -16) ➕ `ui/src/reducers/filterReducer.ts` (+149 -0) 📝 `ui/src/reducers/queuesReducer.ts` (+44 -32) 📝 `ui/src/reducers/tasksReducer.ts` (+148 -140) 📝 `ui/src/store.ts` (+6 -0) </details> ### 📄 Description This PR implements searching through tasks by keyword, regex or custom JS code. The search is executed in the browser. Due to the nature of this PR, the implementation has some hacks, please let me know if you have suggestions for better approaches or improvement ideas. ## Caveats - Searching aggregating tasks is not supported yet - As the search is performed in the browser, and since we are restricted to linear search, this approach does not scale very well. However: - I have tested it with 100K tasks with each task containing a ~500 char JSON object. The search completes in roughly 10s and JS heap usage increased by 70MB after the search. Therefore I expect this implementation will be fine for at least 1 mil tasks. ## Demo video https://user-images.githubusercontent.com/105025270/168958901-765a73cf-42de-4170-8445-de236cc150be.mp4 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/asynqmon#288
No description provided.