adjust generate previews

This commit is contained in:
Pete Matsyburka committed 2026-10-12 09:33:42 +03:00
1 parent 28c4177128
commit ced5ab67ab
1 file changed
+16 -11
+16 -11
View File
@@ -90,23 +90,28 @@ module Templates
pool = Concurrent::FixedThreadPool.new(concurrency)
promises =
range.map do |page_number|
doc_page = doc.get_page(page_number)
blobs =
range.each_slice(concurrency).flat_map do |page_numbers|
promises =
page_numbers.map do |page_number|
doc_page = doc.get_page(page_number)
hide_placeholder_widgets(doc_page, hide_empty: !flatten_pages)
doc_page.flatten if flatten_pages
hide_placeholder_widgets(doc_page, hide_empty: !flatten_pages)
doc_page.flatten if flatten_pages
bytes, width, height = doc_page.render_to_bitmap(width: MAX_WIDTH)
bytes, width, height = doc_page.render_to_bitmap(width: MAX_WIDTH)
image = Vips::Image.new_from_memory_copy(bytes, width, height, 4, :uchar)
image = Vips::Image.new_from_memory_copy(bytes, width, height, 4, :uchar)
Concurrent::Promise.execute(executor: pool) { build_and_upload_blob(image, page_number) }
ensure
doc_page&.close
Concurrent::Promise.execute(executor: pool) { build_and_upload_blob(image, page_number) }
ensure
doc_page&.close
end
Concurrent::Promise.zip(*promises).value!
end
Concurrent::Promise.zip(*promises).value!.each do |blob|
blobs.each do |blob|
next unless blob
ApplicationRecord.no_touching do