나는 Python으로 Heroku 앱을 작성하려고하는데, 이는 xively 피드의 데이터를 실시간으로 읽고 저장합니다. 나는 앱이 데이터를 단순히 데이터베이스에 저장하는 일종의 '백엔드 프로세스'로서 독립적으로 실행되기를 원한다. (사이트 방문자에게 사용자를 위해 어떤 것도 제공 할 필요가 없습니다.)(python) heroku 앱에서 지속적으로 데이터를 읽는 방법?
지금은 '계속 읽기'부분을 작업 중입니다. 나는 아래에 나의 코드를 포함시켰다. 단순히 앱의 Heroku URL에 도달 할 때마다 데이터 스트림을 한 번 읽습니다. 어떻게 연속적으로 작동시켜 데이터를 계속 읽을 수있게합니까?
import os
from flask import Flask
import xively
app = Flask(__name__)
@app.route('/')
def run_xively_script():
key = 'FEED_KEY'
feedid = 'FEED_ID'
client = xively.XivelyAPIClient(key)
feed = client.feeds.get(feedid)
datastream = feed.datastreams.get("level")
level = datastream.current_value
return "level is %s" %(level)
나는 웹 개발, Heroku가, 그리고 파이썬에 새로운 오전 ... 나는 어떤 도움 (포인터) 감사 정말 것이다
{ PS : 나는 Heroku가 스케줄러에 대해 그리고 내가 이해에서 읽고 , 특정 시간 간격으로 작업을 예약하는 데 사용할 수 있으며 작업을 수행 할 때 해당 작업에 대해 일회성 dyno를 시작합니다. 그러나 앞서 언급 한 것처럼 내 앱은 실제로 하나의 기능 만 수행하여 연속적으로 데이터를 읽고 저장합니다. 이를 위해 별도의 작업을 예약해야합니까? 그리고 스케쥴러가 시작할 일회용 다이노는 또한 dyno 시간을 소모 할 것입니다. 이는 내 앱의 웹 dyno가 이미 720 dyno-hour/month를 소비하므로 무료 750 dyno-hour 제한을 초과 할 것이라고 생각합니다. }
입력 해 주셔서 감사합니다. 이것은 가장 실시간 (효율적인) 접근 방식과 같이 보입니다. 트리거를 잠시 설정하는 것만으로도 충분하지만, Flask 앱이 POST에 응답하는 것은 복잡해 보입니다 ... 유용한 정보를 찾을 수있는 포인터/링크가 정말 좋을 것입니다 ... – user3482357
나는 API를 작성하는 데 안성맞춤 인 Flask의 팬입니다. Flask의 인터페이스와 유사합니다. 안정적으로 GET, POST 등을 쉽게 정의 할 수 있습니다. 이미 가지고있는 것을 고수하고 싶다면 라우트 데코레이터는 @ app.route ('/ xivelytrigger', methods = [ 'POST'])와 비슷할 것입니다. 코드는 게시물의 본문을 읽고 데이터를 구문 분석하고 DB에 저장합니다. 그렇다면 Xively에 대한 POST 응답은 아무 것도 될 수 없다 (나는 생각한다). 나는 Xively와 함께 일한 것이 아니므로 확실히 말할 수는 없지만 Flask POST 부분은 나쁘지 않습니다. – TimothySwieter