Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix timer cleanup #13

Merged
merged 2 commits into from
Jan 16, 2024
Merged

Conversation

seekdavidlee
Copy link
Collaborator

@seekdavidlee seekdavidlee commented Jan 12, 2024

Timer cleanups for both user and chat are stored in the same index db. When cleanup routine fires in either one of the user or chat clients, it would cleanup subscriptions for both. The subscription type now carries a componentType property. When querying we can specify componentType as either chat or user. This is done via in-memory filtering. Given we don't expect a high number of subscriptions to be returned because we only return expired subscriptions based on a timestamp (maybe 100 or less?), this approach should be performant enough.

There is an alternate design of using compound index, but it introduces complexity in the index/query. To keep it simple, I have opted for the in-memory filtering approach.

Copy link

Code Coverage

Package Line Rate Branch Rate Complexity Health
mgt-chat.src.statefulClient 100% 100% 0
mgt-chat.src.utils 100% 96% 0
mgt-components.dist.es6.components.mgt-agenda.src.components.mgt-agenda 12% 100% 0
mgt-components.dist.es6.components.mgt-contact.src.components.mgt-contact 62% 100% 0
mgt-components.dist.es6.components.mgt-file-list.mgt-file-upload.src.components.mgt-file-list.mgt-file-upload 43% 100% 0
mgt-components.dist.es6.components.mgt-file-list.src.components.mgt-file-list 51% 100% 0
mgt-components.dist.es6.components.mgt-file.src.components.mgt-file 46% 100% 0
mgt-components.dist.es6.components.mgt-get.src.components.mgt-get 20% 100% 0
mgt-components.dist.es6.components.mgt-login.src.components.mgt-login 63% 100% 0
mgt-components.dist.es6.components.mgt-messages.src.components.mgt-messages 65% 100% 0
mgt-components.dist.es6.components.mgt-organization.src.components.mgt-organization 46% 100% 0
mgt-components.dist.es6.components.mgt-people-picker.src.components.mgt-people-picker 49% 100% 0
mgt-components.dist.es6.components.mgt-people.src.components.mgt-people 59% 100% 0
mgt-components.dist.es6.components.mgt-person-card.src.components.mgt-person-card 53% 33% 0
mgt-components.dist.es6.components.mgt-person.src.components.mgt-person 48% 100% 0
mgt-components.dist.es6.components.mgt-picker.src.components.mgt-picker 75% 100% 0
mgt-components.dist.es6.components.mgt-profile.src.components.mgt-profile 39% 100% 0
mgt-components.dist.es6.components.mgt-tasks-base.src.components.mgt-tasks-base 76% 100% 0
mgt-components.dist.es6.components.mgt-tasks.src.components.mgt-tasks 54% 100% 0
mgt-components.dist.es6.components.mgt-taxonomy-picker.src.components.mgt-taxonomy-picker 62% 100% 0
mgt-components.dist.es6.components.mgt-teams-channel-picker.src.components.mgt-teams-channel-picker 55% 100% 0
mgt-components.dist.es6.components.mgt-theme-toggle.src.components.mgt-theme-toggle 74% 100% 0
mgt-components.dist.es6.components.mgt-todo.src.components.mgt-todo 80% 100% 0
mgt-components.dist.es6.components.preview.mgt-search-box.src.components.preview.mgt-search-box 74% 100% 0
mgt-components.dist.es6.components.preview.mgt-search-results.src.components.preview.mgt-search-results 51% 100% 0
mgt-components.dist.es6.components.preview.src.components.preview 100% 100% 0
mgt-components.dist.es6.components.src.components 82% 100% 0
mgt-components.dist.es6.components.sub-components.mgt-arrow-options.src.components.sub-components.mgt-arrow-options 70% 100% 0
mgt-components.dist.es6.components.sub-components.mgt-dot-options.src.components.sub-components.mgt-dot-options 28% 100% 0
mgt-components.dist.es6.components.sub-components.mgt-flyout.src.components.sub-components.mgt-flyout 40% 100% 0
mgt-components.dist.es6.components.sub-components.mgt-spinner.src.components.sub-components.mgt-spinner 92% 100% 0
mgt-components.dist.es6.graph.src.graph 36% 100% 0
mgt-components.dist.es6.src 100% 100% 0
mgt-components.dist.es6.styles.src.styles 73% 100% 0
mgt-components.dist.es6.utils.src.utils 45% 100% 0
mgt-components.src.components 81% 100% 0
mgt-components.src.components.mgt-contact 68% 83% 0
mgt-components.src.components.mgt-file 51% 100% 0
mgt-components.src.components.mgt-file-list 56% 100% 0
mgt-components.src.components.mgt-file-list.mgt-file-upload 49% 88% 0
mgt-components.src.components.mgt-messages 66% 100% 0
mgt-components.src.components.mgt-organization 47% 100% 0
mgt-components.src.components.mgt-person 79% 65% 0
mgt-components.src.components.mgt-person-card 66% 47% 0
mgt-components.src.components.mgt-profile 40% 100% 0
mgt-components.src.components.mgt-theme-toggle 100% 100% 0
mgt-components.src.components.sub-components.mgt-flyout 72% 53% 0
mgt-components.src.components.sub-components.mgt-spinner 100% 100% 0
mgt-components.src.graph 39% 89% 0
mgt-components.src.styles 92% 80% 0
mgt-components.src.utils 79% 28% 0
mgt-element.dist.es6.components.src.components 73% 81% 0
mgt-element.dist.es6.mock.src.mock 90% 72% 0
mgt-element.dist.es6.providers.src.providers 85% 69% 0
mgt-element.dist.es6.src 91% 80% 0
mgt-element.dist.es6.utils.src.utils 66% 69% 0
mgt-element.src 88% 100% 0
mgt-element.src.components 84% 100% 0
mgt-element.src.mock 81% 56% 0
mgt-element.src.providers 80% 85% 0
mgt-element.src.utils 71% 90% 0
Summary 57% (25322 / 44632) 66% (452 / 688) 0

@seekdavidlee seekdavidlee merged commit 2773f71 into next/mgt-chat Jan 16, 2024
7 checks passed
@seekdavidlee seekdavidlee deleted the seekdavidlee/cleanup-timers branch January 16, 2024 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants