Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Support using client in repl running tasks without rabbit

Đang mở
#1,704 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
45/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
api, backend

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

c: client

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
Ngôn ngữ chính
Python
Star
13
Fork
14
Merge trung bình
4 ngày 14 giờ
Pull request đã merge (30 ngày)
14

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của DiamondLightSource/blueapi

Tất cả issue của DiamondLightSource/blueapi

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.