Python pyserial 使用大量 CPU 在 Celery 上执行简单任务

问题描述 投票:0回答:0

我在 Celery 工作线程中使用 Pyserial,每 150ms 在串行上写入一个最大 20 字节的数据包

从字面上看,芹菜工作人员除了使用

ser.write(packet)
ser = serial.Serial(COM, 38400, timeout=0.1)

在串行上发送数据之外什么也不做

主要问题是这个简单的过程占用了我的两核 CPU 的整个核心,结果 50% 的 CPU 仅用于在串行上发送数据。我的电脑的规格是

PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

我正在使用Python 3.10以及最新版本的pyserial和celery v5.3.0

当我停止在串口上写入时,CPU 基本上进入空闲状态,消耗在 1-2% 之间

我找不到问题,因为我想优化它。我使用 USB - RS485 转换器 作为串口来传输数据

python celery pyserial rs485
© www.soinside.com 2019 - 2024. All rights reserved.