ターミナルからローカルにホストされている mongodb データベースにツイートを取り込むことができる Python で記述されたスクリプトがあります。アップタイムを改善するために、このスクリプトを Heroku でリモートでホストし、消費されたツイートを MongoHQ でホストされているデータベースに送信したいと考えています。Django を使用せずにこれを行いたいので、Flask フレームワークを使用してアプリを Heroku にデプロイします (ここで説明: https://devcenter.heroku.com/articles/python )。
このセットアップを使用して単純な「hello world」アプリを実行すると、すべて問題ありません。ただし、ツイートを消費するアプリを実行しようとすると、すぐにクラッシュします。Flask/Heroku/MongoHQ セットアップで動作するようにアプリを変更するにはどうすればよいですか? ソースコードは次のとおりです。
import json
import pymongo
import tweepy
consumer_key = ""
consumer_secret = ""
access_key = ""
access_secret = ""
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
class CustomStreamListener(tweepy.StreamListener):
def __init__(self, api):
self.api = api
super(tweepy.StreamListener, self).__init__()
self.db = pymongo.MongoClient().test
def on_data(self, tweet):
self.db.tweets.insert(json.loads(tweet))
def on_error(self, status_code):
return True # Don't kill the stream
def on_timeout(self):
return True # Don't kill the stream
sapi = tweepy.streaming.Stream(auth, CustomStreamListener(api))
sapi.filter(track=['rooney'])
私はプログラミングにまったく慣れていないので、この問題の解決策は非常に簡単であると思います。しかし、私は立ち往生しており、実際に進歩するためにいくつかの助けを借りることができます.