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
finished
norcancelled
, 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
cancelled
take appropriate action, like retrying or alerting.
We implement this either as a long-running loop or with something like CRON.
Updated over 7 years ago