【问题标题】:ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine in Django and Paho mqttConnectionAbortedError: [WinError 10053] 已建立的连接被 Django 和 Paho mqtt 主机中的软件中止
【发布时间】:2021-05-19 12:10:26
【问题描述】:

我正在使用 paho MQTT 与 windows 2012 r2 服务器上的 mosquitto 服务器建立连接。我使用了 2 个线程,一个用于主服务器进程,另一个用于与 mosquitto 服务器建立连接。 这就是我建立与 MQTT 的连接的方式。 mqtt.py 文件与 manage.py 一起放在 Django 的主项目中

import random
client_id = f'python-mqtt-{random.randint(0, 1000)}'
def mqtt_connect():
    mqtt_connect.client = mqtt.Client(client_id)
    mqtt_connect.client.on_connect = on_connect  
    mqtt_connect.client.on_message = on_message 
    mqtt_connect.client.on_disconnect = on_disconnect 
    mqtt_connect.client.connect(config("CLIENT_PORT"),1883)
    mqtt_connect.client.loop_start()

我已经在主文件夹中的 init.py 以及 settings.py 中初始化了线程

import pymysql

pymysql.version_info = (1, 4, 0, "final", 0)
pymysql.install_as_MySQLdb()

import mqtt
import threading

x = threading.Thread(target=mqtt.mqtt_connect)
x.start()

Django 应用程序正在 apache 服务器上运行。

问题: 每次我在特定时间间隔后收到来自 MQTT 的消息时,都会发生此错误,

ln1/lidIntact\r
[Tue Apr 27 10:54:54.817976 2021] [wsgi:error] [pid 72980:tid 1532] <paho.mqtt.client.MQTTMessage object at 0x000000CC2B07DBC8>\r
[Tue Apr 27 10:54:54.817976 2021] [wsgi:error] [pid 72980:tid 1532] ['ln1', 'lidIntact']\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] Exception in thread Thread-2:\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] Traceback (most recent call last):\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\connections.py", line 705, in _write_bytes\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     self._sock.sendall(data)\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] \r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] During handling of the above exception, another exception occurred:\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] \r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] Traceback (most recent call last):\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\backends\\utils.py", line 84, in _execute\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     return self.cursor.execute(sql, params)\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\backends\\mysql\\base.py", line 73, in execute\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     return self.cursor.execute(query, args)\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\cursors.py", line 163, in execute\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     result = self._query(query)\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\cursors.py", line 321, in _query\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     conn.query(q)\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\connections.py", line 504, in query\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     self._execute_command(COMMAND.COM_QUERY, sql)\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\connections.py", line 763, in _execute_command\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     self._write_bytes(packet)\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\connections.py", line 710, in _write_bytes\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532]     "MySQL server has gone away (%r)" % (e,))\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] pymysql.err.OperationalError: (2006, "MySQL server has gone away (ConnectionAbortedError(10053, 'An established connection was aborted by the software in your host machine', None, 10053, None))")\r
[Tue Apr 27 10:54:54.864827 2021] [wsgi:error] [pid 72980:tid 1532] \r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532] The above exception was the direct cause of the following exception:\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532] \r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532] Traceback (most recent call last):\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\python37\\lib\\threading.py", line 926, in _bootstrap_inner\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self.run()\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\python37\\lib\\threading.py", line 870, in run\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self._target(*self._args, **self._kwargs)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 3452, in _thread_main\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self.loop_forever(retry_first_connection=True)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 1779, in loop_forever\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     rc = self.loop(timeout, max_packets)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 1181, in loop\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     rc = self.loop_read(max_packets)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 1572, in loop_read\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     rc = self._packet_read()\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 2310, in _packet_read\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     rc = self._packet_handle()\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 2936, in _packet_handle\r

[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     return self._handle_publish()\r

[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 3216, in _handle_publish\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self._handle_on_message(message)\r

[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\paho\\mqtt\\client.py", line 3444, in _handle_on_message\r

[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self.on_message(self, self._userdata, message)\r

[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\models\\query.py", line 678, in first\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     for obj in (self if self.ordered else self.order_by('pk'))[:1]:\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\models\\query.py", line 287, in __iter__\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self._fetch_all()\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\models\\query.py", line 1308, in _fetch_all\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self._result_cache = list(self._iterable_class(self))\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\models\\query.py", line 53, in __iter__\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\models\\sql\\compiler.py", line 1156, in execute_sql\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     cursor.execute(sql, params)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\backends\\utils.py", line 66, in execute\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\backends\\utils.py", line 75, in _execute_with_wrappers\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     return executor(sql, params, many, context)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\backends\\utils.py", line 84, in _execute\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     return self.cursor.execute(sql, params)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\utils.py", line 90, in __exit__\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     raise dj_exc_value.with_traceback(traceback) from exc_value\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\backends\\utils.py", line 84, in _execute\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     return self.cursor.execute(sql, params)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\django\\db\\backends\\mysql\\base.py", line 73, in execute\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     return self.cursor.execute(query, args)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\cursors.py", line 163, in execute\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     result = self._query(query)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\cursors.py", line 321, in _query\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     conn.query(q)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\connections.py", line 504, in query\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self._execute_command(COMMAND.COM_QUERY, sql)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\connections.py", line 763, in _execute_command\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     self._write_bytes(packet)\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]   File "c:\\users\\administrator\\envs\\mqtt\\Lib\\site-packages\\pymysql\\connections.py", line 710, in _write_bytes\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532]     "MySQL server has gone away (%r)" % (e,))\r
[Tue Apr 27 10:54:54.880456 2021] [wsgi:error] [pid 72980:tid 1532] django.db.utils.OperationalError: (2006, "MySQL server has gone away (ConnectionAbortedError(10053, 'An established connection was aborted by the software in your host machine', None, 10053, None))")\r

我是新手,所以谁能告诉我我是否处理错误的线程或者就像我在其他问题中读到的那样,这是一个 python 问题。我在这里使用 python 3.7。

谢谢。

【问题讨论】:

    标签: python django apache mqtt windows-server-2012-r2


    【解决方案1】:

    我通过与硬件建立心跳信号解决了这个问题。由于硬件方面的长时间活动,连接正在中止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-04
      • 2021-02-02
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 2019-06-25
      相关资源
      最近更新 更多