非常に初心者です。前もってお詫び申し上げます。自分が何をしているのかわかりませんが、実際に周りを見回しました。
ログインフォームの背後にある数十ページをダウンロードし、GAEで実行して結果をdbingしています。各ページの読み取りとデータベースの書き込みをタスク キューに入れたいと思います。タスク キューに切り替えたとき、セッションの受け渡しに問題があることに気付きました。
urllib2 を使用してオープナーを作成します。
cj = cookielib.CookieJar()
session = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
session.addheaders.append(('User-agent', 'Mozilla/4.0'))
login_data = urllib.urlencode({ 'username' : 'guest',
'password' : 'guest',
'Submit1' : 'Submit'})
resp = session.open(self.login_page, login_data, timeout=20)
self.session = session
以前は、このクラスをヘッドエンドで 1 回だけインスタンス化し、全員が使用できるように 1 つのセッション インスタンス変数を作成してから、コンテキストを維持するためにインスタンス化を渡していました。タスク キューを使用してオブジェクトを渡すことができないため、リクエスト ハンドラーが呼び出されたときに、オープナーまたは Cookie への参照を渡すことができません。
毎回再度ログインしなくても新しいオープナーを作成できるように、オープナーまたは Cookie 情報を保存または渡す方法はありますか? ヘッダー辞書を介して Cookie 情報を各ハンドラーに渡すことはできますか? memcache に何かを詰め込みますか? Cookie を有効なオープナーに戻すには、正確に何を渡す必要がありますか?
上記を通り抜けてくれた人に感謝します。