mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Only pre-launch workers for books likely to benefit from parallelization
This commit is contained in:
parent
29e20d8b59
commit
36d5dee047
@ -310,7 +310,6 @@ def create_cover_page(container, input_fmt, is_comic, book_metadata=None):
|
|||||||
spine = container.opf_xpath('//opf:spine')[0]
|
spine = container.opf_xpath('//opf:spine')[0]
|
||||||
ref = spine.makeelement(OPF('itemref'), idref=item.get('id'))
|
ref = spine.makeelement(OPF('itemref'), idref=item.get('id'))
|
||||||
container.insert_into_xml(spine, ref, index=0)
|
container.insert_into_xml(spine, ref, index=0)
|
||||||
container.dirty(container.opf_name)
|
|
||||||
return raster_cover_name, titlepage_name
|
return raster_cover_name, titlepage_name
|
||||||
|
|
||||||
|
|
||||||
@ -410,6 +409,9 @@ def transform_html(container, name, virtualize_resources, link_uid, link_to_map,
|
|||||||
|
|
||||||
class RenderManager(object):
|
class RenderManager(object):
|
||||||
|
|
||||||
|
def __init__(self, prelaunch_workers=True):
|
||||||
|
self.prelaunch_workers = prelaunch_workers
|
||||||
|
|
||||||
def launch_worker(self):
|
def launch_worker(self):
|
||||||
with lopen(os.path.join(self.tdir, '{}.json'.format(len(self.workers))), 'wb') as output:
|
with lopen(os.path.join(self.tdir, '{}.json'.format(len(self.workers))), 'wb') as output:
|
||||||
error = lopen(os.path.join(self.tdir, '{}.error'.format(len(self.workers))), 'wb')
|
error = lopen(os.path.join(self.tdir, '{}.error'.format(len(self.workers))), 'wb')
|
||||||
@ -421,7 +423,8 @@ class RenderManager(object):
|
|||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
self.workers = []
|
self.workers = []
|
||||||
self.tdir = PersistentTemporaryDirectory()
|
self.tdir = PersistentTemporaryDirectory()
|
||||||
self.launch_worker(), self.launch_worker()
|
if self.prelaunch_workers:
|
||||||
|
self.launch_worker(), self.launch_worker()
|
||||||
return self
|
return self
|
||||||
|
|
||||||
def __exit__(self, *a):
|
def __exit__(self, *a):
|
||||||
@ -821,7 +824,7 @@ def get_stored_annotations(container):
|
|||||||
|
|
||||||
|
|
||||||
def render(pathtoebook, output_dir, book_hash=None, serialize_metadata=False, extract_annotations=False, virtualize_resources=True):
|
def render(pathtoebook, output_dir, book_hash=None, serialize_metadata=False, extract_annotations=False, virtualize_resources=True):
|
||||||
with RenderManager() as render_manager:
|
with RenderManager(prelaunch_workers=pathtoebook.rpartition('.')[-1].lower() in ('epub', 'azw3')) as render_manager:
|
||||||
mi = None
|
mi = None
|
||||||
if serialize_metadata:
|
if serialize_metadata:
|
||||||
from calibre.ebooks.metadata.meta import get_metadata
|
from calibre.ebooks.metadata.meta import get_metadata
|
||||||
|
Loading…
x
Reference in New Issue
Block a user