Support using client in repl running tasks without rabbit
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
Start with src/blueapi/client/plan_cache.py, client.py, and event_bus.py, which appear in the traceback; trace how foreground task execution connects to the message bus. Compare the websocket option with the alternative acceptance criteria for background execution and clearer connection errors. Done means foreground tasks work through the chosen approach, or bus connection failures produce a helpful user facing error.
由索引模型根据 Issue 内容生成。
描述
If you try and use the client in a repl without stomp configured it errors with a stack trace showing it can't connect to the message bus. This is an unhelpful wall of text to be user facing.
>>> bc.plans.count(detectors=[bc.devices.det])
# 2026-10-20 10:00:18,596 INFO blueapi.client.plan_cache plan_cache.py:112 -- Building args for [detectors,num,delay,metadata], using () and {'detectors': [Device(det)]}
# 2026-10-20 10:00:18,605 INFO root messaging.py:366 -- Stomp client connecting...
# 2026-10-20 10:00:18,605 WARNING stomp.py transport.py:893 -- could not connect to host localhost, port 61613: [Errno 111] Connection refused
# 2026-10-20 10:00:18,807 WARNING stomp.py transport.py:893 -- could not connect to host localhost, port 61613: [Errno 111] Connection refused
# 2026-10-20 10:00:19,009 WARNING stomp.py transport.py:893 -- could not connect to host localhost, port 61613: [Errno 111] Connection refused
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/abi/projects/blueapi/src/blueapi/client/plan_cache.py", line 82, in __call__
match self._client.run_task(req):
~~~~~~~~~~~~~~~~~~~~~^^^^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/observability_utils/tracing/decorators.py", line 151, in wrapper
return func(*args, **kwargs)
File "/home/abi/projects/blueapi/src/blueapi/client/client.py", line 400, in run_task
with self._events:
^^^^^^^^^^^^
File "/home/abi/projects/blueapi/src/blueapi/client/event_bus.py", line 27, in __enter__
self.app.connect()
~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/bluesky_stomp/messaging.py", line 368, in connect
self._connect_to_broker()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/bluesky_stomp/messaging.py", line 383, in _connect_to_broker
self._conn.connect(wait=True) # type: ignore
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/stomp/connect.py", line 151, in connect
self.transport.start()
~~~~~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/stomp/transport.py", line 113, in start
self.attempt_connection()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/home/abi/projects/blueapi/.venv/lib/python3.14/site-packages/stomp/transport.py", line 910, in attempt_connection
raise exception.ConnectFailedException()
stomp.exception.ConnectFailedException
>>>
Acceptance Criteria
- Preferably:
-- The fg running option is changed to a websocket by default, removing the message bus from this loop
-- If there are connection errors these are nicely wrapped for the user - Alternatively if if bus really wants to be kept for this:
-- The client supports a background running option, like the --bg flag on the cli
-- If you do try and run a plan in the fg without the bus you get a more helpful error
- 主要语言
- Python
- 星标
- 13
- 派生
- 14
- 平均合并
- 4 天 14 小时
- 30 天内合并 PR
- 14
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
DiamondLightSource/blueapi 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
DiamondLightSource/blueapi#1626 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
DiamondLightSource/blueapi#1623 · 2 条评论 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 68/100
DiamondLightSource/blueapi#1605 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 64/100
DiamondLightSource/blueapi#1494 ·
维护者通常 1 天内回复
-
难度 4/5 1-2 天 新手友好度 52/100
DiamondLightSource/blueapi#1718 ·
维护者通常 1 天内回复
查看 DiamondLightSource/blueapi 的全部 Issue
相似的 Issue
-
style: article/section 📝 system: cloud.rc ☁️ system: security 🔐
难度 2/5 1-3 小时 新手友好度 65/100
uabrc/uabrc.github.io#1262 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 70/100
NCAR/miles-credit#526 ·
-
documentation
难度 1/5 1-3 小时 新手友好度 76/100
conda/conda-lock#957 ·
维护者通常 1 天内回复
-
Type: Bug
难度 2/5 1-3 小时 新手友好度 65/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
aws-samples/sample-per-model-bedrock#464 ·
维护者通常 1 天内回复