Skip to content

OpenAleph Procrastinate

The most dumbest task queue for OpenAleph based on procrastinate

Background

There have been several attempts for implementing the task queuing within Aleph. Initially, it was a self-written redis-based implementation in servicelayer, which switched to rabbitmq with Aleph v4 (which still involved redis a lot).

Based on the experiences with task queues in Aleph and other projects we have worked on, we decided to rewrite it for OpenAleph once again, but this time using a 3rd party library, procrastinate.

We hope to achieve the following goals with this approach:

  • Use as much 3rd party components as possible
  • Improve visibility/trackability of tasks
  • Persistent task queue
  • Reduce complexity of codebase, improve development and maintenance experience
  • Don't implement & run our own workers if possible (leave all the (multi-)threading stuff to a 3rd party)
  • Orchestration: Have different workers for different queues on different architectures
  • Have the ability to deploy programs that just subscribe to a single task queue (such as geocoding or audio/video extraction)

Get started