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

Support groups inside xqueue #11

Open
ochaton opened this issue Oct 14, 2019 · 0 comments
Open

Support groups inside xqueue #11

ochaton opened this issue Oct 14, 2019 · 0 comments
Labels
enhancement New feature or request

Comments

@ochaton
Copy link
Member

ochaton commented Oct 14, 2019

Sometimes there is a necessity to process group of tasks in sequence.

Ex. consumer puts task1 and then task2 into group1 . xqueue must gurantee for consumers that task2 never be given for consumers until task1 is processed correctly.

Task is processed correctly only if it was acknowledged (removed from space, moved to Done state, or temporary left as zombie).

Request for comments:

  1. Space for xqueue must have field order which will be used by xqueue for ordering tasks inside each group.
  2. Introduce new status L (for Locked) which assigns to each task when producer puts it into existing group.
  3. Implement transitions of status L -> R for method :ack.
  4. If task put with delay into existing group, it must be delayed from the last task in the group.
  5. If taken task released by consumer with delay back inside group, then all tasks of the group must be proper delayed.
  6. If task is buried then neither other task from the group should be processed
@ochaton ochaton added the enhancement New feature or request label Oct 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant