質問編集履歴
2
現在検証中によりおまたせしております
test
CHANGED
File without changes
|
test
CHANGED
@@ -231,3 +231,9 @@
|
|
231
231
|
|
232
232
|
|
233
233
|
以上、宜しくお願い致します
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
▼ 2019/05/18
|
238
|
+
|
239
|
+
現在メモリを調査しておりまして、こちらの検証結果について改めてご連絡させて頂きます。
|
1
コードの記述がなかったため
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,4 +34,200 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
+
■コマンドにつきまして(起動)
|
38
|
+
|
39
|
+
```sh
|
40
|
+
|
41
|
+
$ cd /var/www/htdocs/contents/
|
42
|
+
|
43
|
+
$ python appd.py
|
44
|
+
|
45
|
+
```
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
■appd.pyの主要なコードを記述します
|
52
|
+
|
53
|
+
```Python appd.py
|
54
|
+
|
55
|
+
from bottle import (route, template, error, response,
|
56
|
+
|
57
|
+
request, HTTPError, HTTPResponse, TEMPLATE_PATH,
|
58
|
+
|
59
|
+
abort, run, redirect, debug, Bottle, static_file)
|
60
|
+
|
61
|
+
from beaker.middleware import SessionMiddleware
|
62
|
+
|
63
|
+
from paste import httpserver as web
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
import os
|
68
|
+
|
69
|
+
import sys
|
70
|
+
|
71
|
+
import time
|
72
|
+
|
73
|
+
import math
|
74
|
+
|
75
|
+
from datetime import datetime, timedelta
|
76
|
+
|
77
|
+
import re
|
78
|
+
|
79
|
+
session_timeout = 3600000
|
80
|
+
|
81
|
+
session_opts = {
|
82
|
+
|
83
|
+
'session.type': 'file',
|
84
|
+
|
85
|
+
'session.timeout': session_timeout,
|
86
|
+
|
87
|
+
'session.cookie_expires': True,
|
88
|
+
|
89
|
+
'session.data_dir': './data',
|
90
|
+
|
91
|
+
'session.auto': True,
|
92
|
+
|
93
|
+
'save_accessed_time': False
|
94
|
+
|
95
|
+
}
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
app = Bottle()
|
100
|
+
|
101
|
+
apps = SessionMiddleware(app, session_opts)
|
102
|
+
|
103
|
+
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
104
|
+
|
105
|
+
TEMPLATE_PATH.append(BASE_DIR + "/views")
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
@app.route('/view_page/', method='GET')
|
110
|
+
|
111
|
+
def view_page():
|
112
|
+
|
113
|
+
check_login()
|
114
|
+
|
115
|
+
#user_id = int(request.forms.user_id)
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
import c_database
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
login = request.environ.get('beaker.session')
|
124
|
+
|
125
|
+
session_user_id=login.get('user_id')
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
db = c_database.connect_database()
|
130
|
+
|
131
|
+
connect = db[0]
|
132
|
+
|
133
|
+
cur = db[1]
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
sql = "SELECT uri, domain FROM user_domains WHERE user_id = %s"
|
138
|
+
|
139
|
+
cur.execute(sql, (session_user_id, ))
|
140
|
+
|
141
|
+
rows = cur.fetchone()
|
142
|
+
|
143
|
+
if isinstance(rows, type(None)) :
|
144
|
+
|
145
|
+
raise HTTPError(status=401, body="データは存在しません。")
|
146
|
+
|
147
|
+
else :
|
148
|
+
|
149
|
+
db_uri = rows[0]
|
150
|
+
|
151
|
+
db_domain = rows[1]
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
c_database.close_database(connect, cur)
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
return template('view_page', tp=BASE_DIR + "/views/", page_name='ページ表示',
|
160
|
+
|
161
|
+
uri=db_uri,
|
162
|
+
|
163
|
+
domain=db_domain)
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
def daemon_serv():
|
170
|
+
|
171
|
+
pid = os.fork()
|
172
|
+
|
173
|
+
try:
|
174
|
+
|
175
|
+
if pid != 0:
|
176
|
+
|
177
|
+
fd = open('./bottle.pid','w')
|
178
|
+
|
179
|
+
fd.write(str(pid) + '\n')
|
180
|
+
|
181
|
+
fd.close()
|
182
|
+
|
183
|
+
sys.exit()
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
except OSError as e:
|
188
|
+
|
189
|
+
sys.stderr.write("BottleFork: Failed: %d (%s)\n" % (e.errno, e.strerror))
|
190
|
+
|
191
|
+
sys.exit(1)
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
while 1:
|
196
|
+
|
197
|
+
web.serve(apps, host='localhost', port=8000,daemon_threads=False,threadpool_workers=10,use_threadpool=100)
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
if __name__ == "__main__":
|
204
|
+
|
205
|
+
daemon_serv()
|
206
|
+
|
207
|
+
```
|
208
|
+
|
209
|
+
■WEBからのアクセス
|
210
|
+
|
211
|
+
http://localhost:8000/view_page
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
※コードは主要部分だけに加工しました
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
■メモリについてはMonitという追加モジュールでプロセス管理をしておりまして、
|
220
|
+
|
221
|
+
Process 欄のメモリについて
|
222
|
+
|
223
|
+
memory 0.3% [101.9 MB]
|
224
|
+
|
225
|
+
memory total 0.3% [101.9 MB]
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
処理ごとにmemory とmemory totalが 数十MBずつ増えていきます
|
230
|
+
|
231
|
+
|
232
|
+
|
37
|
-
宜しくお願い
|
233
|
+
以上、宜しくお願い致します
|