Sample architecture
metoda has built several products on Price API. Here is how we integrated the API.
Database of jobs and their state
When we create a job with Price API, we store the job_id together with all the parameters (like source, country, topic, key, ...) in a database table.
This table also keeps track of the status as it was last reported and whether it was processed and when to next try processing it.
Scheduler
We have a process that identifies data that needs to be updated. It then creates a job with Price API and keeps track of it in aforementioned database table.
This process also makes sure not to request data a second time when it was already requested and the job has not finished yet.
We implement this either as a long-running loop or with something like CRON.
Processor
A separate process regularly queries the database for jobs that are ready to be acted on:
- For jobs that have a status neither
finishednorcancelled, request a status update after a minute. - For jobs that have a status
finished, try to download and process the results. - For jobs that have a status
cancelledtake appropriate action, like retrying or alerting.
We implement this either as a long-running loop or with something like CRON.
Updated 6 months ago
