Как вызвать сообщение flask_websocket от APScheduler?
Я создаю приложение для работы в списке ToDo. Для этого я получил флэшку, которая хранит задание и запускает событие, когда крайний срок достигнут с помощью Advanced Python Scheduler (APScheduler).
На внешнем интерфейсе у меня есть настольное приложение Python, которое подключается к бэкэнд через веб-порты и ждет, пока сервер отправит предупреждение о том, что крайний срок пришел.
Главный сервер фляжки с функцией гнезда
#To add Flask Sockets for double realtime communication.
from flask_sockets import Sockets
#Define a new Flask app.
application = Flask(__name__)
sockets = Sockets(application)
#Import Daemon to schedule tasks.
from Daemon.controller import Daemon
daemon = Daemon()
daemon.startDaemon()
#This is the daemon route that my client connects to.
#This connection remains for as long as the client has the client app open.
@sockets.route('/daemon')
def schedulerTrigger(ws):
while not ws.closed:
if daemon.isTask():
ws.send("Task HERE!")
print("Task Sent")
message = ws.receive()
print(message)
ws.send(message)
time.sleep(1)
#After this we got the if__main__ initialization of Flask-sockets.
...
Класс Flask Daemon для управления запланированными действиями с использованием APScheduler
#Imports and other stuff
class Daemon():
def __init__(self):
super(Daemon, self).__init__()
self.event = False
#HERE JUST A FUNCTION TO INITIALIZE DAEMON AND USE
#REMINDPOST TO TELL THE USER THAT THE TASK IS OVERDUE
def remindPost(self, tskName, tskContent, tskPriority, tskStrtDate, tskEndDate):
self.event = True
print("Don't forget to do: ")
print(tskName)
print(tskContent)
print("Priority: " + str(tskPriority))
print(tskStrtDate)
print(tskEndDate)
Проблема в том, что у меня есть APScheduler в классе и петля сокета в главном приложении. Я тестировал, и петля сокета работает сама по себе, так же, как и метод APScheduler.
Я хочу, чтобы APScheduler запускал цикл сокета, чтобы пользователь-клиент знал, что задача просрочена, но я не смог связать их друг с другом. Каков правильный метод, чтобы метод APScheduler в классе Daemon запускал цикл сокета и отправлял пользователю сообщение?
Еще в рубрике
- Вопросы
- Flask-sockets
- Как вызвать сообщение flask_websocket от APScheduler?