Skip to main content

Elon

pypi-version

Elon is a lightweight async job queue backed by redis.

Why the name?

Because Elon Musk gets things done.

What it does?

Say you have a Django or Flask application that is heavily network- or IO-bound. Say in this app you have a view that makes a slow backend API call. When a user visits this view, your web worker gets tied up until the API responds, which severely limits your throughput. In some cases, you must wait for the API's response to generate your response (in which case I'd recommend Tornado), but in others you might not need the response right away, and in this case, Elon is perfect for your situation.

Example

Here is a long-running task - pretend that instead of waiting 10 seconds, it's actually hitting a backend API.

import time
def long_api_request():
    time.sleep(10)

We could rewrite it as an async task using elon:

import asyncio
from tasklib import task

@task
async def long_api_request():
    await asyncio.sleep(10)

When it comes to calling the task, before:

@app.route('/enqueue_task')
def enqueue_task():
    # Runs the task and returns once it is complete.
    long_running_process()
    return 'Success!'

After:

@app.route('/enqueue_task')
def enqueue_task():
    # Enqueue the task and return instantly.
    long_running_process.enqueue()
    return 'Success!'

When you call enqueue() on a task, you'll instantly receive a UUID, which you can use to query for the result and see job progress.

Decorating classes:

You can also decorate classes, as long as they inherit from Task. Example:

class ComplexTask(Task):
    def execute(self):
        pass

Classes that inherit from Task must define their own execute method - this is the method run to actually call the task.

Metadata

Release files for elon 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elon 0.2.2
File Size Uploaded Provenance Actions
elon-0.2.2.tar.gz 6.2 kB Without provenance Details for elon-0.2.2.tar.gz

Release files / elon-0.2.2.tar.gz

Download URL elon-0.2.2.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b57eea9874e117f962e4e9673c6929d537aa6139d7a712e66e87dfa142130fa0
BLAKE2b-256 checksum
How to use checksums
0cbc470624ebc39808f4b8beb4f2201e924fbe36dcf44bcb01ff213d5d619eb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for elon 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.2 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page