Delete session asynchronously by malatewang · Pull Request #1117 · MemMachine/MemMachine
Purpose of the change
Improve user experience when deleting a session.
Description
When deleting a session, MemMachine will delete all the data from DB, which may take a long time if there are large number of memory entries. This can cause bad user experience or front-end timeout. In this PR, the session deletion is performed asynchronously. When the user requests delete, the session status is updated, and a background job does the actual deletion job. The side effect is that the same session ID can not be used before the actual background job is completed.
Fixes/Closes
Fixes #(issue number)
Type of change
[Please delete options that are not relevant.]
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- Refactor (does not change functionality, e.g., code style improvements, linting)
- Documentation update
- Project Maintenance (updates to build scripts, CI, etc., that do not affect the main project)
- Security (improves security without changing functionality)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.
[Please delete options that are not relevant.]
- Unit Test
- Integration Test
- End-to-end Test
- Test Script (please provide)
- Manual verification (list step-by-step instructions)
Test Results: [Attach logs, screenshots, or relevant output]
Checklist
[Please delete options that are not relevant.]
- I have signed the commit(s) within this pull request
- My code follows the style guidelines of this project (See STYLE_GUIDE.md)
- I have performed a self-review of my own code
- I have commented my code
- I have made corresponding changes to the documentation
- My changes generate no new warnings
- I have added unit tests that prove my fix is effective or that my feature works
- New and existing unit tests pass locally with my changes
- Any dependent changes have been merged and published in downstream modules
- I have checked my code and corrected any misspellings
Maintainer Checklist
- Confirmed all checks passed
- Contributor has signed the commit(s)
- Reviewed the code
- Run, Tested, and Verified the change(s) work as expected
Screenshots/Gifs
[If applicable, add screenshots or GIFs that show the changes in action. This is especially helpful for API responses. Otherwise, delete this section or type "N/A".]
Further comments
[Add any other relevant information here, such as potential side effects, future considerations, or any specific questions for the reviewer. Otherwise, type "None".]