6. Use Celery Task Queue

  • Status: [accepted]

  • Deciders: [Fabian Bühler]

  • Date: [2021-06-29]

6.1. Context and Problem Statement

Plugins can provide algorithms that would timeout any HTTP request. They must have a way to execute long running tasks.

6.2. Decision Drivers

  • Most quantum computers are only accessible over a job queue

  • QHAna plugins potentially get very large inputs

6.3. Considered Options

  • Ignore the potential for timeouts

  • Let the plugin decide

  • Provide a configured task queue (e.g. Celery)

6.4. Decision Outcome

Chosen option: “Provide a configured task queue”, because it allows plugins to easily make use of the task queue for long running tasks.

6.4.1. Positive Consequences

  • Plugins can use Celery for simple and complex long running tasks

6.4.2. Negative Consequences

  • Plugin runner gets more complex and must handle task results/task state