So there was this daunting task faced by our team recently wherein we had to update the mimetype in like lakhs of DAM asset renditions!!
An initial thought on how to do this can be that we develop a custom servlet that does the job of updating the renditions and run it once on all instances. But this requires efforts and an additional deployment which we hardly wanted.
Since the property was initially set up using a custom workflow, we started off by using ACS Commons Bulk Workflow Manager. For this task, after we modified our custom workflow model we started off taking one folder at a time, querying for the assets and running the workflow on those as payloads.
But the initial outcome was pretty disheartening. What looked like a couple of days work was suddenly turning out to be a nightmare for us!
There were multiple reasons why this was not a good option:
1. The custom workflow was not transient and running too may instances could jeopardize the instance operations. We had enabled the delete workflow instance after completion option though to reduce any manual purging effort.
2. Since we could not run the workflow on the root dam folder, we had to do this folder by folder which could have taken forever!
3. The results were inconsistent. Success rate wasn’t hundred percent even for the assets that were being updated.