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