Простой опрос RSS-канала для обновления плейлиста Spotify в Google App Engine? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь изучить Google App Engine (и общее программирование веб-приложений), создав простое приложение, которое периодически опрашивает RSS-канал радиостанции (~ 1 запрос / мин), записывает результат в базу данных и обновляетSpotify плейлист с текущей песней.Я использую Python с инфраструктурой Flask для веб-приложения.У меня есть простой интерфейсный сайт, который может реализовать протокол аутентификации Spotify, однако сейчас я борюсь с лучшим способом опроса информации из RSS-канала в фоновом режиме.Я рассмотрел использование отложенного рабочего процесса с очередями задач Google App Engine, но кажется, что cron может быть лучшим вариантом для чего-то такого простого.В cron docs Google App Engine написано, что нужно реализовать URL-вызов, который затем обрабатывается в моем приложении.Это обрабатывается моими обработчиками URL Flask (т.е. маршрутами) или обработчиками ядра приложения?Сначала я думал, что это будет выглядеть примерно так:

В файле cron.yaml:

cron:
- description: "Poll Song RSS"
  url: /playlistupdate
  schedule: every 1 minute

А затем в моем routes.py у меня будет маршрут для выполнения работы.:

@app.route('/playlistupdate')
def playlistupdate ()
    <Send HTTP request to RSS site, store results in SQLite db, add song to spotify playlist via Spotify API>

Это правильная идея?Или я что-то упускаю из-за того, как должен работать поток cron?Что произойдет, если пользователь попытается перейти на http://[MY_HOSTNAME]/playlistupdate?

Любая помощь в том, что мои варианты для простого фонового потока опроса, как это, и как это будет работать с платформой Flask, будет очень цениться.Заранее спасибо.

1 Ответ

0 голосов
/ 09 июля 2019

Да, используйте cron.

Да, вы можете реализовать обработчик точно так, как вы его описали.

Да, вы должны обезопасить конечную точку, иначе любой сможет получить к ней доступ.

См. здесь , чтобы узнать, как защитить конечную точку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...