DiamondLightSource / DiamondLightSource/daq-queuing-service

Make plugins more flexible

Open
#88 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.