mirror of
https://git.sr.ht/~tsileo/microblog.pub
synced 2024-11-15 03:04:28 +00:00
Start playing with caching
This commit is contained in:
parent
8e43f4a230
commit
2ee3fc0c67
2 changed files with 16 additions and 1 deletions
15
app.py
15
app.py
|
@ -820,6 +820,12 @@ def paginated_query(db, q, limit=25, sort_key="_id"):
|
||||||
def index():
|
def index():
|
||||||
if is_api_request():
|
if is_api_request():
|
||||||
return jsonify(**ME)
|
return jsonify(**ME)
|
||||||
|
logged_in = session.get("logged_in", False)
|
||||||
|
if not logged_in:
|
||||||
|
cached = DB.cache.find_one({"path": request.path, "type": "html"})
|
||||||
|
if cached:
|
||||||
|
app.logger.info("from cache")
|
||||||
|
return cached['response_data']
|
||||||
|
|
||||||
q = {
|
q = {
|
||||||
"box": Box.OUTBOX.value,
|
"box": Box.OUTBOX.value,
|
||||||
|
@ -846,13 +852,20 @@ def index():
|
||||||
DB.activities, q, limit=25 - len(pinned)
|
DB.activities, q, limit=25 - len(pinned)
|
||||||
)
|
)
|
||||||
|
|
||||||
return render_template(
|
resp = render_template(
|
||||||
"index.html",
|
"index.html",
|
||||||
outbox_data=outbox_data,
|
outbox_data=outbox_data,
|
||||||
older_than=older_than,
|
older_than=older_than,
|
||||||
newer_than=newer_than,
|
newer_than=newer_than,
|
||||||
pinned=pinned,
|
pinned=pinned,
|
||||||
)
|
)
|
||||||
|
if not logged_in:
|
||||||
|
DB.cache.update_one(
|
||||||
|
{"path": request.path, "type": "html"},
|
||||||
|
{"$set": {"response_data": resp, "date": datetime.now(timezone.utc)}},
|
||||||
|
upsert=True,
|
||||||
|
)
|
||||||
|
return resp
|
||||||
|
|
||||||
|
|
||||||
@app.route("/with_replies")
|
@app.route("/with_replies")
|
||||||
|
|
|
@ -109,6 +109,8 @@ def create_indexes():
|
||||||
("activity.object.id", pymongo.ASCENDING),
|
("activity.object.id", pymongo.ASCENDING),
|
||||||
("meta.deleted", pymongo.ASCENDING),
|
("meta.deleted", pymongo.ASCENDING),
|
||||||
])
|
])
|
||||||
|
DB.cache.create_index([("path", pymongo.ASCENDING), ("type", pymongo.ASCENDING)])
|
||||||
|
DB.cache.create_index("date", expireAfterSeconds=60)
|
||||||
|
|
||||||
# Index for the block query
|
# Index for the block query
|
||||||
DB.activities.create_index(
|
DB.activities.create_index(
|
||||||
|
|
Loading…
Reference in a new issue