1. OS : Windows && ArchLinux
2. Python version 3.7.2
3.
4. код укажу в сообщении
Доброго дня Всем! Бьюсь не первый день,
Задача: сделать управление программой через HttpServer и не мешать её работе/продолжать выполнение while и запускать задачи
Кратко о коде: Есть run_mi():
- он с базы берёт настройки на выполнение всякой лабуды, например запустить то то в такое то время и прочее (config.getOptions()),
- далее запускается HttpServer для управления программой через GET,
- затем идёт бесконечный цикл while (вот тут и запускается всякая лабуда по расписанию), запускаются задачи асинхронно благодаря asyncio, чтобы это было в while есть "await asyncio.sleep(1)"
Проблема: при запуске HttpServer, стопарится на команде await asyncio.sleep(1) в цикле while. У меня есть предположение, что "HTTPServer((host, port), HandleRequests).serve_forever()", выполняет прослушку порта и висит на нём, не давая выполняться больше ничего в программе
Так вот сам вопрос, как решить задачу? У меня уже глаз мылится на этой теме. Как повесить HttServer чтобы слушать get и чтоб не стопарить выполнение программы?
Может другие есть альтернативные способы, через WebSocket, Socket не хотелось бы - НО рассматриваю как альтернативу, через общий файл не серьёзно. Есть любые идеи или предложения?
2. Python version 3.7.2
3.
Package Version
----------------------- ----------
certifi 2018.11.29
cffi 1.12.3
chardet 3.0.4
click 7.1.2
gevent 1.4.0
greenlet 0.4.15
idna 2.8
lxml 4.5.1
mysql-connector-python 8.0.13
nest-asyncio 1.4.0
parse 1.16.0
pip 20.2.2
psutil 5.7.0
pycparser 2.19
PyMySQL 0.9.3
requests 2.21.0
ru-address 0.1
setuptools 40.6.2
simple-websocket-server 0.4.0
six 1.12.0
urllib3 1.24.1
var-dump 1.2
websocket 0.2.1
websocket-client 0.56.0
websockets 8.1
----------------------- ----------
certifi 2018.11.29
cffi 1.12.3
chardet 3.0.4
click 7.1.2
gevent 1.4.0
greenlet 0.4.15
idna 2.8
lxml 4.5.1
mysql-connector-python 8.0.13
nest-asyncio 1.4.0
parse 1.16.0
pip 20.2.2
psutil 5.7.0
pycparser 2.19
PyMySQL 0.9.3
requests 2.21.0
ru-address 0.1
setuptools 40.6.2
simple-websocket-server 0.4.0
six 1.12.0
urllib3 1.24.1
var-dump 1.2
websocket 0.2.1
websocket-client 0.56.0
websockets 8.1
4. код укажу в сообщении
Доброго дня Всем! Бьюсь не первый день,
Задача: сделать управление программой через HttpServer и не мешать её работе/продолжать выполнение while и запускать задачи
Кратко о коде: Есть run_mi():
- он с базы берёт настройки на выполнение всякой лабуды, например запустить то то в такое то время и прочее (config.getOptions()),
- далее запускается HttpServer для управления программой через GET,
- затем идёт бесконечный цикл while (вот тут и запускается всякая лабуда по расписанию), запускаются задачи асинхронно благодаря asyncio, чтобы это было в while есть "await asyncio.sleep(1)"
Проблема: при запуске HttpServer, стопарится на команде await asyncio.sleep(1) в цикле while. У меня есть предположение, что "HTTPServer((host, port), HandleRequests).serve_forever()", выполняет прослушку порта и висит на нём, не давая выполняться больше ничего в программе
Так вот сам вопрос, как решить задачу? У меня уже глаз мылится на этой теме. Как повесить HttServer чтобы слушать get и чтоб не стопарить выполнение программы?
Может другие есть альтернативные способы, через WebSocket, Socket не хотелось бы - НО рассматриваю как альтернативу, через общий файл не серьёзно. Есть любые идеи или предложения?
Последнее редактирование: