I have a requirement to publish articles to an external system for translation. This service is used when articles are created and when the articles are modified as well. Also, I would like to receive these articles from the external system after translation. I am thinking of two approaches - Batch Apex or Scheduled Job.
Batch Apex:
I would like to have a batch job to send one article(since an article could be of size up to 10MB) at a time for each execution. And in finish send a summary email about the successes and failures. Likewise, another batch job to receive one article at a time.
Scheduled Apex:
Upon second thought, since we are sending only one article per execution in batch. Can I chain scheduled job itself? By invoking the same job again after 5 minutes, I am thinking that I can achieve the same result as using a Batch job. By doing this, I believe I can save one of the 5 batch jobs limit.
Since I cannot send arguments to a scheduled job, I might have to use some custom object to pass the arguments between jobs. I feel like that this approach might warrant maintenance since I am using Custom Object. Likewise, scheduling another scheduled job for receiving articles.
I would like to know which is the optimal design and why. Please advise