forgejo/services
Gusted 70a7d6a0de
[ENHANCEMENT] Improve caching of contributor stats
- It was noticed [in the Forgejo matrix channel](https://matrix.to/#/!qjPHwFPdxhpLkXMkyP:matrix.org/$vk78UR0eFCwQMDMTZ7-DWjMVB_LIAwHW6SkjhEcGkQQ?via=matrix.org) that the generation of the Forgejo project contributor stats was taking quite a while on codeberg.org. This was continued with the fact that a few moments later it was once again generating them again; it seemed like they weren't being cached while they were.
- The problem was that the cache TTL is hardcoded to ten minutes and not to the configured TTL. This patch changes that by using the configured TLL for the contributor cache, as this is a computationally heavy operation and should be cached for as long as possible for a good user experience. This doesn't impact the accuracy of this feature because the commit ID of the default branch is used as a cache key.
- Also changed in this patch, is that errors aren't cached and are instead being logged, this is more helpful to the administrator. For the user essentially nothing changed on this side, the contributor stats just looks like it's loading indefinitely.
- Realistically, testing this isn't possible, as the cache library Forgejo currently uses doesn't expose the TTL or expiration time of a key. Manually testing this behavior is quite lengthy, as one of the steps would need to be "wait for ten minutes" and describe how you can notice the data was cached or was just generated, and because you could use different types of cache, it will be quite hard to write down how you could check the TTL of a key for a particular cache (I'm not even sure it's even possible for some).
2024-07-06 21:23:46 +02:00
..
actions Fixes git references wrongly transmitted to the action run 2024-06-30 06:17:40 +02:00
agit fix(hook): ignore unknown push options instead of failing 2024-07-02 21:39:01 +02:00
asymkey
attachment
auth
automerge
context
contexttest
convert Add tag protection via rest api #17862 (#31295) 2024-06-16 13:42:59 +02:00
cron
doctor
externalaccount [Fix] Account Linking UpdateMigrationsByType (#31428) 2024-06-23 12:40:53 +02:00
f3 Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
federation feat(federated-star) star repositories via ActivityPub (#1680) 2024-06-06 08:58:11 +02:00
feed
forgejo
forms Add slogan config (#3752) 2024-06-07 17:12:48 +00:00
gitdiff chore(lint): make golangci-lint to v1.59.0 happy 2024-06-01 16:17:07 +02:00
indexer
issue Performance improvements for pull request list API (#30490) 2024-06-02 16:26:54 +02:00
lfs Fix #31185 try fix lfs download from bitbucket failed (#31201) 2024-06-16 13:42:59 +02:00
mailer Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
markup
migrations Add lint-go-gopls (#30729) 2024-06-09 11:13:39 +02:00
mirror test(mock): DeletePushMirrors & AddPushMirrorRemote 2024-06-02 16:31:41 +02:00
notify
org
packages
pull Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
release
remote Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
repository [ENHANCEMENT] Improve caching of contributor stats 2024-07-06 21:23:46 +02:00
secrets
task
uinotification
user test(avatar): deleting a user avatar is idempotent 2024-06-05 09:10:42 +02:00
webhook test: webhook open project expected fields 2024-06-05 15:58:51 +02:00
wiki