Enhacement request: Merge similar jobs in the job queue
This is a follow-up to a post I made yesterday in the "Devices" sub-forum.
If you're sending a number of books to a device from a Calibre library, you can end up with a job queue that looks something like:
Upload 1 book
Upload 3 books
Upload 2 books
Upload 1 book
etc.
The problem is that, as things stand at the moment, Calibre does a "Send metadata to device" step at the end of each one of these jobs, and although uploading a book to a device might only take 2s, the subsequent "Send metadata" step (which, as Kovid kindly explained, sends metadata for all the books on the device) can easily take 30-40s on my Kindle Voyage. This can take literally hours if sending books in a large number of separate jobs.
I was thinking, and it occurred to me that perhaps there could be potential for serious optimisation here. Suppose that, when an "Upload Books" job was created and queued, the job queue manager were to scan the current queue and, if it found another "Upload Books" job in the queue, simply added the list of books in the new job to that of the old? That way, the slow "Send metadata" step would only be done once when the combined job ran.
Is this a feasible idea? It really could save a huge amount of time for the user if it were feasible to implement.
|