argos/README.md

845 B

On service start.

  1. Read the job definitions file and populate the database.
  2. From the job definition, create a list of tasks to execute.
  3. From time to time (?) clean the db.

On configuration changes :

  • Find and tombstone the JobDefinitions that are not useful anymore.
  • Cascade delete the child tasks that are planned. Tombstone them as wel.

On worker demand :

  • Find the tasks for which :
    • last_check is not defined
    • OR last_check + max_timedelta > datetime.now()
    • AND selected_by not defined.
  • Mark these tasks as selected by the current worker, on the current date.

From time to time:

  • Check for stalled tasks (datetime.now() - selected_at) > MAX_WORKER_TIME. Remove the lock.

On the worker side

Hey, I'm XX, give me some work. OK, this is done, here are the results for Task: response.