ebookmaker accepts a "job queue" for PG-specific usage, but it runs the jobs in series not in parallel. This only makes use of a single CPU as observed by the hours ebookconverter takes to run but only one CPU is ever maxed out at a time.
Ideally ebookmaker would accept a --concurrency value and use a ThreadPool of that size to run multiple jobs in parallel. Care must be taken to ensure that ebookmaker resources are either threadsafe or that each thread owns its own copy of the resource. The latter is easier but may require restructuring the code.
ebookmaker accepts a "job queue" for PG-specific usage, but it runs the jobs in series not in parallel. This only makes use of a single CPU as observed by the hours ebookconverter takes to run but only one CPU is ever maxed out at a time.
Ideally ebookmaker would accept a
--concurrencyvalue and use a ThreadPool of that size to run multiple jobs in parallel. Care must be taken to ensure that ebookmaker resources are either threadsafe or that each thread owns its own copy of the resource. The latter is easier but may require restructuring the code.