DiamondLightSource / DiamondLightSource/daq-queuing-service
Make plugins more flexible
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 16
Description
Currently the queue plugin has three hooks:
- validation run when tasks are added
- queue processing run whenever the queue changes
- conversion to bluesky plans run whenever the queue changes
If the plugin needs to do any slow operations, such as query tiled, this can make the queue slugish as the operation is blocking and runs every time anything changes. Some more hooks that can be attached to different endpoints or called at different times, such as right before a task is run, could help plugins to be more time efficient and cache information when appropriate. Another option is to add asynchronous validation/processing.
## Acceptance Criteria
- Plugins can be written such that the frequent processes are extremely quick
- There is a sensible way to run slower processes without compromising performance
Contributor guide
Research direction
Start by mapping the queue plugin's three existing hooks: validation on task addition, queue processing on queue changes, and conversion to Bluesky plans on queue changes. Determine how hook timing or asynchronous processing could keep frequent operations quick while allowing slow work and caching. Done means plugins have a sensible way to defer slow processes without compromising queue performance.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100