python
  • google-app-engine
  • cron
  • 2011-01-18 20 views 3 likes 
    3

    私は自分のlocalhostで動作するcronジョブをPythonで持っていますが、appengineにデプロイされても機能しません。Cronはローカルホスト上で動作しますが、配備時には動作しませんAppengine

    pl = db.Query(Venue).order("id") 
        list = pl.fetch(limit=0) 
        for p in pl: 
         base_url = 'http://search.twitter.com/search.json?rpp=100&q=4sq.com/' 
         query = p.twitter_ID 
         url_string = base_url + query 
         json_text = fetch(url_string) 
         json_response = simplejson.loads(json_text.content) 
         result = json_response['results'] 
         for f in result: 
          user = f['from_user'] 
          print user 
    

    これはローカルで正常に動作しますが、サーバー上で、私は次のエラーを取得する:私は私の第二のバージョンを展開するまで

    'results' Traceback (most recent call last): File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/init.py", line 515, in call handler.get(*groups) File "/base/data/home/apps/hoosheer/4.347697940058059704/hoosheer_main.py", line 199, in get result = json_response['results'] KeyError: 'results'

    これは仕事をしました。私がこれを解決できる方法はありますか?

    +1

    あなたはTwitterからの返信に含まれるものを確認する必要があります。私はそこに「結果」フィールドがないと思うかもしれません、多分いくつかのエラーが発生しました(いくつかのtwitterクォータを超えましたか?)。 logging.info( 'JSON RESPONE:%s'%json_text)をコードに追加して、アプリケーションログにTwitterから返されるものをチェックインします。 –

    +0

    ええ、パベルは私にそれを打つ。私は、Twitterが1人のユーザーとしてApp Engineから来ているリクエストをすべて集計して「いいえ、あなたのために」と計り知れないほどの金額のお金を賭けるだろう。隔離された割り当てを取得するために、自分のログインを要求することが許可される場合があります。 – Malvolio

    答えて

    3

    JSON 'results'フィールドは、Twitterで許可されているIp当たりのリクエストが利用可能なリクエストのmax quotaに達しているため返されません。これはなぜあなたの国内IPからあなたは何の問題もなく、あなたはHTTP 420応答コードを取得しないことを説明します。

    Google App Engineは、送信urlfetchリクエストでは*、認証ではTwitter search APIsの共有プールを使用します。

    Search API Rate Limiting

    Requests to the Search API, hosted on search.twitter.com, do not count towards the REST API limit. However, all requests coming from an IP address are applied to a Search Rate Limit. The Search Rate Limit isn't made public to discourage unnecessary search usage and abuse, but it is higher than the REST Rate Limit. We feel the Search Rate Limit is both liberal and sufficient for most applications and know that many application vendors have found it suitable for their needs.

    これは、Google App Engineがアプリケーションに適切な選択肢であるかどうかを真剣に考えさせるでしょう。

    私は同じ問題を抱えていましたが、幸いにもAPIの開発者は同じIPからの認証された要求を許可する認証メカニズムを有効にしました。

    +1

    ご協力いただきありがとうございます。私は同じ問題を持ってはならないGAEでHunchを使うことに変更しています:) – qwop

    関連する問題