GNU/Weeb Mailing List <[email protected]>
 help / color / mirror / Atom feed
From: Ammar Faizi <[email protected]>
To: GNU/Weeb FB Team <[email protected]>
Cc: Ammar Faizi <[email protected]>,
	GNU/Weeb Mailing List <[email protected]>,
	Michael William Jonathan <[email protected]>
Subject: [PATCH fb v1 0/6] Introducing cache for the Facebook scraper
Date: Tue,  9 May 2023 17:46:52 +0700	[thread overview]
Message-ID: <[email protected]> (raw)

Hi,

This series introduce a cache mechanism to speed up the web API
performance. It's very useful to reduce the pain when developing an
app that uses the API. It also greatly reduces the number of requests
to the same endpoint that happens in a short period of time.

There are 6 patches in this series:

Patch #1: Introduce `getCache()` and `setCache()`.
A preparation patch to implement better caching mechanism. All methods
that need cache will call these functions.

Patch #2: Replace old cache mechanism in `getTimelineYears()`.
Simplify the caching mechanism and make the `getTimelineYears()`
cache private to itself. This also means that the endpoint
"action=getTimelineYears" will utilize the cache.

Patch #3, #4: Implement cache in `getTimelinePosts()` and `getPost()`.
Make short repeated calls fast.

Patch #5: Introduce `clearExpiredCaches()`.
When a cache is expired, it won't be deleted unless getCache() with the
corresponding key is invoked. Introduce a new function to scan for
expired caches and delete them.

Patch #6: Create cron.php to clear cache.
Allow the server to clear expired caches via a small PHP script,
cron.php. Periodically calling clearExpiredCaches() will delete old
expired caches, it saves storage space.

Signed-off-by: Ammar Faizi <[email protected]>
---

The following changes since commit 0d5e59e00359e165778a81f80122bb522f8edb0f:

  Merge branch 'rewrite_url' (Facebook Onion rewrite support) (2023-05-03 18:46:47 +0700)

are available in the Git repository at:

  https://gitlab.torproject.org/ammarfaizi2/Facebook.git dev.cache

for you to fetch changes up to d30f2dad8ca761b5a9c8de32ea48adbbdd201d03:

  fb: web: Create cron.php to clear cache (2023-05-09 17:33:12 +0700)

----------------------------------------------------------------
Ammar Faizi (6):
      fb: Introduce `getCache()` and `setCache()` functions
      fb: Post: Replace old cache mechanism in `getTimelineYears()`
      fb: Post: Implement cache in `getPost()`
      fb: Post: Implement cache in `getTimelinePosts()`
      fb: cache: Introduce `clearExpiredCaches()`
      fb: web: Create cron.php to clear cache

 src/Facebook/Facebook.php     | 99 ++++++++++++++++++++++++++++++----------
 src/Facebook/Methods/Post.php | 74 ++++++++++--------------------
 web/cron.php                  |  9 ++++
 3 files changed, 108 insertions(+), 74 deletions(-)
 create mode 100644 web/cron.php

base-commit: 0d5e59e00359e165778a81f80122bb522f8edb0f
-- 
Ammar Faizi


             reply	other threads:[~2023-05-09 10:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-09 10:46 Ammar Faizi [this message]
2023-05-09 10:46 ` [PATCH fb v1 1/6] fb: Introduce `getCache()` and `setCache()` functions Ammar Faizi
2023-05-09 10:46 ` [PATCH fb v1 2/6] fb: Post: Replace old cache mechanism in `getTimelineYears()` Ammar Faizi
2023-05-09 10:46 ` [PATCH fb v1 3/6] fb: Post: Implement cache in `getPost()` Ammar Faizi
2023-05-09 10:46 ` [PATCH fb v1 4/6] fb: Post: Implement cache in `getTimelinePosts()` Ammar Faizi
2023-05-09 10:46 ` [PATCH fb v1 5/6] fb: cache: Introduce `clearExpiredCaches()` Ammar Faizi
2023-05-09 10:46 ` [PATCH fb v1 6/6] fb: web: Create cron.php to clear cache Ammar Faizi
2023-05-09 11:06 ` [PATCH fb v1 0/6] Introducing cache for the Facebook scraper GNU/Weeb Facebook Team

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox