У меня есть сайт на PythonAnywhere, который использует Flask и Flask-SQLAlchemy, подключенный к базе данных MySQL. Пользователи могут использовать веб-сайт для постановки в очередь задачи, которая сохраняется в базе данных как запись в таблице, а затем отдельная запланированная задача (программа Python) проверяет базу данных и обрабатывает каждую необработанную запись.
Проблема, с которой я сталкиваюсь, заключается в том, что запрос к базе данных запланированной задачи, похоже, находит новые записи только при первом запуске, но если я затем использую веб-сайт для добавления новой задачи, повторяющаяся запланированная задача повторяется Запросы базы данных (каждые 5 секунд), похоже, не обнаруживают новую запись.
Есть идеи о том, что здесь может происходить?
Вот код, выполняемый файлом bash:
def generate_any_pending_videos():
unfinished_videos = db.session.query(Video)\
.filter(~Video.status.has(VideoStatus.status.in_(['Error', 'Finished', 'Video deleted'])))\
.order_by(Video.datetime_created)\
.all()
for video in unfinished_videos:
try:
logging.info("Attempting to create video for video %d" % video.id)
generate_video(video)
except Exception as e:
logging.error(str(e))
if __name__ == '__main__':
while True:
generate_any_pending_videos()
time.sleep(5)