|
3 | 3 | import asyncio |
4 | 4 | import functools |
5 | 5 | import logging |
6 | | -import os |
7 | | -import socket |
8 | 6 | from collections.abc import Generator |
9 | 7 | from functools import cache |
10 | 8 | from threading import Event, Lock |
11 | 9 | from typing import Any, cast |
12 | 10 |
|
13 | 11 | import bluesky.preprocessors as bpp |
14 | | -import msgpack_numpy |
15 | 12 | from bluesky.run_engine import RunEngine, RunEngineResult |
16 | 13 | from bluesky.utils import DuringTask, Msg, RunEngineControlException, RunEngineInterrupted |
17 | | -from bluesky_kafka import Publisher |
18 | 14 |
|
19 | | -from ibex_bluesky_core.callbacks import DocLoggingCallback |
| 15 | +from ibex_bluesky_core.callbacks import DocLoggingCallback, KafkaCallback |
20 | 16 | from ibex_bluesky_core.plan_stubs import CALL_QT_AWARE_MSG_KEY, CALL_SYNC_MSG_KEY |
21 | 17 | from ibex_bluesky_core.preprocessors import add_rb_number_processor |
22 | 18 | from ibex_bluesky_core.run_engine._msg_handlers import call_qt_aware_handler, call_sync_handler |
23 | 19 | from ibex_bluesky_core.utils import is_matplotlib_backend_qt |
24 | 20 | from ibex_bluesky_core.version import version |
25 | 21 |
|
26 | | -__all__ = ["get_kafka_topic_name", "get_run_engine", "run_plan"] |
| 22 | +__all__ = ["get_run_engine", "run_plan"] |
27 | 23 |
|
28 | 24 | logger = logging.getLogger(__name__) |
29 | 25 |
|
30 | 26 |
|
31 | | -DEFAULT_KAFKA_BROKER = "livedata.isis.cclrc.ac.uk:31092" |
32 | | - |
33 | | - |
34 | | -def get_kafka_topic_name() -> str: |
35 | | - """Get the name of the bluesky Kafka topic for this machine.""" |
36 | | - computer_name = os.environ.get("COMPUTERNAME", socket.gethostname()).upper() |
37 | | - computer_name = computer_name.upper() |
38 | | - if computer_name.startswith(("NDX", "NDH")): |
39 | | - name = computer_name[3:] |
40 | | - else: |
41 | | - name = computer_name |
42 | | - |
43 | | - return f"{name}_bluesky" |
44 | | - |
45 | | - |
46 | 27 | class _DuringTask(DuringTask): |
47 | 28 | def block(self, blocking_event: Event) -> None: |
48 | 29 | """On windows, event.wait() on the main thread is not interruptible by a CTRL-C. |
@@ -120,12 +101,9 @@ def get_run_engine() -> RunEngine: |
120 | 101 | log_callback = DocLoggingCallback() |
121 | 102 | RE.subscribe(log_callback) |
122 | 103 |
|
123 | | - kafka_callback = Publisher( |
124 | | - topic=get_kafka_topic_name(), |
125 | | - bootstrap_servers=os.environ.get("IBEX_BLUESKY_CORE_KAFKA_BROKER", DEFAULT_KAFKA_BROKER), |
| 104 | + kafka_callback = KafkaCallback( |
126 | 105 | key="doc", |
127 | | - serializer=msgpack_numpy.dumps, |
128 | | - producer_config={ |
| 106 | + kafka_config={ |
129 | 107 | "enable.idempotence": True, |
130 | 108 | "log_level": 0, |
131 | 109 | "log.connection.close": False, |
|
0 commit comments