pythonのwebアプリケーションでクラスオブジェクトを共有したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まーさ
記事: 20
登録日時: 10年前

pythonのwebアプリケーションでクラスオブジェクトを共有したい

#1

投稿記事 by まーさ » 8年前

pythonでwebアプリケーションを作成しているのですが、あるオブジェクトをメモリ上に保持して、すべてのリクエストから参照したいと考えています。

というのも、1GB程度ある大きなデータをファイルからロードして作成するオブジェクトのため、リクエストの度にロードすると時間がかかりすぎてしまうためです。

JavaのServletを使用していた際は、Servletの初期化時にオブジェクトを生成したり、初回リクエストの際に生成して2回目からはメモリに展開されたオブジェクトを参照していたのですが、pythonで同様な機能を実装するにはどのようにすれば良いのでしょうか。

どうぞよろしくお願い致します。

まーさ
記事: 20
登録日時: 10年前

Re: pythonのwebアプリケーションでクラスオブジェクトを共有したい

#2

投稿記事 by まーさ » 8年前

自己解決しました。webフレームワークを利用すれば大変簡単に実現可能でした。例えばbottleというフレームワークを利用すると、以下のように初回アクセスで初期化が可能です。2回目からはAlready Make Objectが表示される。

コード:

from bottle import route, run
import sys
import os

# object
obj = None

@route('/api/json/:name')
def hello(name):
	global net
	if obj is None:
		obj = <オブジェクト作成>
	else:
		return '<h1>Alreadey Make Object!</h1>'

	return '<h1>Make Object! %s!</h1>' % name

run(host='localhost', port=8080, debug=True, reloader=True)


閉鎖

“C言語何でも質問掲示板” へ戻る