We are currently using Flask_Caching's SimpleCache, which results in a separate cache for each worker. This PR switches to memcached for the following benefits:
Shared between all threads and workers.
Persists between app restarts.
Enables storage of session cookies to be shared between all workers.
Authentication into Nookipedia via the MediaWiki API has been added to enable higher query limits (5000 instead of 500). This is needed to support efficient querying of our larger data tables, such as New Horizons furniture.
Nookipedia bot-accounts and administrators may generate a bot username and password via Special:BotPasswords and populate config.ini with them.
The API will only try to query with auth when it receives a query request for more than 500 items and BOT_USERNAME is defined in config.ini.
Authentication cookies are stored in memcache to be shared with subsequent requests across all workers.
Authentication cookies are refreshed during an authenticated query if the cookies are empty in memcache, or whenever the authenticated query fails.
config.ini
with them.BOT_USERNAME
is defined inconfig.ini
.