У меня есть API для колбы. есть функция, которая повторяется каждую минуту и обновляет базу данных (sqlite3). Это работает некоторое время, но через некоторое время API перестает отвечать на запросы и не отвечает на запросы. Я думаю, что эта функция делает API безразличным. Я вижу ошибку, упомянутую в названии вопроса. Я что-то здесь не так делаю? Любая помощь приветствуется.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import threading
app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
.
.
.
def UpdateStatus():
threading.Timer(60, UpdateStatus).start()
messages = Message.query.filter((Message.status != 'Seen')).all()
for msg in messages:
try:
messageid= msg.messageid
wamessageid= msg.wamessageid
timestamp= datetime.now()
result= driver.get_message_status(wamessageid)
if result==1:
status='Sent'
api_response= 'OK: Message sent'
elif result==2:
status= 'Delivered'
api_response= 'OK: Message Delivered'
elif result==3:
status= 'Seen'
api_response= 'OK: Message Seen'
message = Message.query.filter_by(messageid = messageid).first()
if message.status!= status:
message.status= status
message.apiresponse= api_response
if status== 'Delivered':
message.timestamp_delivered= timestamp
if status== 'Seen':
if message.timestamp_delivered is None:
message.timestamp_delivered= timestamp
message.timestamp_seen= timestamp
db.session.commit()
except:
traceback.print_exc()
continue