Files
danbooru/app/logical
evazion e7744cb6e3 uploads: generate thumbnails in parallel.
Make uploads faster by generating and saving thumbnails in parallel.

We generate each thumbnail in parallel, then send each thumbnail to the
backend image servers in parallel.

Most images have 5 variants: 'preview' (150x150), 180x180, 360x360,
720x720, and 'sample' (850px width). Plus the original file, that's 6
files we have to save. In production we have 2 image servers, so we have
to save each file twice, to 2 remote servers. Doing all this in parallel
should make uploads significantly faster.
2022-02-04 16:20:50 -06:00
..
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2022-01-28 04:13:22 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2022-01-15 23:20:49 -06:00
2021-12-16 00:56:46 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-16 00:56:46 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2022-01-31 14:17:14 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00
2021-12-14 21:33:27 -06:00

Logical

This directory contains library code used through Danbooru. This includes things like defining API clients, dealing with sources, parsing tag searches, storing and resizing images, and so on.

Many of the files here use the Service Object pattern. Instead of putting complex code in models or controllers, it goes here, in plain old Ruby objects (POROs). This keeps models and controllers simpler, and keeps domain logic isolated and independent from the database and the HTTP request cycle.

External links