Skip to content

Redis queue: round-trip GroupId - #190

Merged
niemyjski merged 12 commits into
mainfrom
feature/queue-group-id
Oct 14, 2026
Merged

niemyjski merged 12 commits into
mainfrom
feature/queue-group-id

Conversation

@niemyjski

@niemyjski niemyjski commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

What this adds

Support for the new QueueEntryOptions.GroupId from Foundatio core.

Redis queues are plain lists, so GroupId doesn't change ordering or fairness. It is stored as metadata in the payload envelope and returned on IQueueEntry.GroupId when the message is dequeued. It is also kept when the message is retried.

Changes

  • RedisPayloadEnvelope<T>.GroupId (new optional property). Older payloads without it deserialize with GroupId = null.
  • The entry supplied to the Enqueued event and the dequeued entry both carry GroupId.

Tests

  • Author-reported earlier validation against local Redis in Docker; not independently rerun locally for this dependency correction.
  • Opts into the new shared QueueTestBase tests: round-trip, kept on retry, empty means no group.

Independent dependency validation: core and TestHarness now use matching published 13.0.5-preview.0.10 from core #579 07568d0e. The original published-package solution build failed three CS0115 overrides; this two-pin correction builds the full Release solution with zero warnings/errors and source linking disabled. All 38 existing offline pattern/date utility tests pass locally. Local Redis backend tests were not run; both normal hosted runs pass at 0cc084ff: Redis CI, 910 passed, 0 failed, 26 skips. CI and stable package publication steps are skipped. The existing delayed GroupId retry skip is unchanged.

Compatibility

Old messages already in the queue still deserialize with the new optional field absent. This PR consumes the matching core/TestHarness preview adding GroupId; stable release ordering and broader Properties-wrapper compatibility remain coordinated with core (FoundatioFx/Foundatio#579).

Update

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-14T14:19:11.936938Z 5c1d3b7 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1636ad051c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@niemyjski

niemyjski commented Oct 5, 2026 •

Copy link
Copy Markdown
Member Author

Updated 2026-10-06: reviewed repairs are now pushed at 2cb0b5ab58ac160bdd3f3fe5a56d51368802195b. The push build and PR build still fail compilation before tests because the released Foundatio 13.0.4 package lacks the new GroupId APIs. A core/TestHarness release containing #579, followed by provider dependency updates, remains required. Sibling-source tests do not clear this standalone gate.

The build caller is pinned to guarded core commit a28d0f736d9124431de09764c56aff77fbdc1d5d; both runs resolve that exact workflow and skip the test/package/publishing steps after the compile failure. Feature-branch package publication is also excluded by the approved guard. Dependency versions are unchanged; no packages were published by these runs.

Repair and local validation evidence

The shared empty-GroupId method had no discovered provider wrapper. The repair adds its Fact registration. All 3 GroupId cases passed against disposable local Redis 8.6 with sibling core source. Temporary source-reference path adjustments were restored; dependency versions are unchanged. No production Redis or provider concurrency experiment was used.

These local checks ran on 2026-10-05. Application/test source is unchanged from those validated repair commits; this follow-through added only the approved workflow guard/pin. YAML parsing and diff checks passed. No new local application test run is claimed.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@niemyjski

niemyjski commented Oct 6, 2026 •

Copy link
Copy Markdown
Member Author

Downstream CI pin: this PR consumes Foundatio and Foundatio.TestHarness 13.0.5-preview.0.10 from the Feedz feed, published from main after FoundatioFx/Foundatio#579 merged. No branch nightly is needed anymore.

The Redis worker loop logged dequeue errors and immediately looped again without counting them. It now counts them, ignores cancellation only when its own token is cancelled, and waits one second before retrying. Documents why the delayed-retry GroupId test is skipped: Redis requeues delayed retries in the minute-interval maintenance task.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@niemyjski niemyjski self-assigned this Oct 13, 2026
@niemyjski

Copy link
Copy Markdown
Member Author

Fixed the intermittent test-setup failure Command cannot be issued to a replica: FLUSHDB (2f3ff48). It came from a stale cluster role, not this PR: when a node turns out to be a replica, the topology is refreshed and the flush is retried. CI is green.

@niemyjski

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 5c1d3b7092

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@niemyjski
niemyjski merged commit cbbdb3a into main Oct 14, 2026
3 checks passed
@niemyjski
niemyjski deleted the feature/queue-group-id branch October 14, 2026 17:21
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.

1 participant