Skip to content

Evolution mutualize

Stéphane Brunner edited this page Jun 20, 2023 · 8 revisions

Goals

  • don't have one general queue for all the projects => one project can't block all the other projects
  • don't generate the queue directly from the web UI
  • add retry possibility
  • be able to have a task list for the project
  • be able to have a "report" of a task
  • be able to retry all the failed tiles of a task
  • be able to support OGC API Process https://ogcapi.ogc.org/processes/

Structure

classDiagram
class projects
projects: string

class projects_index
projects_index: int

class task_-project-
task_-project-: str cmd
task_-project-: str created_date
task_-project-: str status
task_-project-: int queue_id

class task_-project-_index
task_-project-_index: int 

class queue_-id-

projects_index --> projects: Last project run
projects --> task_-project-: Tasks of the project[n]
task_-project-_index --> task_-project-: Last queue run
task_-project- --> queue_-id-: Queue of the task
Loading

status: (creating|progress|error|terminated)

Slave

while true:
  inc projects_index  
  get value of projects_index
  get project name on project[projects_index]
  inc tasks_<project>_index
  is the queue generated:
    generate the queue
  else:
    get queue_id on tasks_<project>[tasks_<project>_index]
    get queue on queue[queue_id]
    get item on queue
    process item
    manage xclame
    put error on task_error_<queue_id>
Clone this wiki locally