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) pool = Concurrent::FixedThreadPool.new(concurrency)
promises = blobs =
range.map do |page_number| range.each_slice(concurrency).flat_map do |page_numbers|
doc_page = doc.get_page(page_number) promises =
page_numbers.map do |page_number|
doc_page = doc.get_page(page_number)
hide_placeholder_widgets(doc_page, hide_empty: !flatten_pages) hide_placeholder_widgets(doc_page, hide_empty: !flatten_pages)
doc_page.flatten if 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) } Concurrent::Promise.execute(executor: pool) { build_and_upload_blob(image, page_number) }
ensure ensure
doc_page&.close doc_page&.close
end
Concurrent::Promise.zip(*promises).value!
end end
Concurrent::Promise.zip(*promises).value!.each do |blob| blobs.each do |blob|
next unless blob next unless blob
ApplicationRecord.no_touching do ApplicationRecord.no_touching do