Skip to main content

Client-side stubs for celery task execution

Project description

Celery stubs

This is a small library for client side function stubs for celery.

The name stubs does not refer to the testing aspect but rather to a proxy behavior coming from the stub / skeleton pattern known from remote method invocations. At celery, there is no need to create a skeleton, since this is handled by the middleware.

The stubs approach uses the send_task to schedule a remote task for execution. Since the stub does not know the arguments to apply, this is the part of the blueprint method.

Example

## Server

@app.task(name="calculate_sum")
def sum(a, b):
    return a + b

## Client

# Proxy Definition
class _CalculateSumTask(celery_client_stubs.AsyncRemoteTask):
    def __init__(self, celery, *args):
        super().__init__("calculate_sum", celery, *args)

def celery_sum(celery, a, b):
    return _CalculateSumTask(celery, a, b)

# Definition of methods
app = Celery(...)

...

def sum(a, b):
    return celery_sum(app, a, b)

# Usage

async_result = sum(1, 2).schedule_immediately()

# Wait for method to complete ...

Task Factory

The class itself provides an RemoteTaskFactory, that can be used:

# Definition

class MyRemoteTasks(celery_client_stubs.RemoteTaskFactory):
    def sum(self, a, b):
        task = celery.AsyncRemoteTask("calculate_sum", self._celery, a, b)

        return task

# Usage

app = Celery(...)

tasks = MyRemoteTasks(app)
async_result = tasks.sum(1, 2).schedule_immediately()

Licensing

This library is published under BSD-3-Clause license, just like Celery is.

Versioning

This library follows semantic versioning 2.0. Any breaking change will produce a new major release. Versions below 1.0 are considered to have a unstable interface.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

celery_client_stubs-0.7.1.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

celery_client_stubs-0.7.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file celery_client_stubs-0.7.1.tar.gz.

File metadata

  • Download URL: celery_client_stubs-0.7.1.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for celery_client_stubs-0.7.1.tar.gz
Algorithm Hash digest
SHA256 613a00f88aff8a217600c995c8db53c3a0fc5f4736f8486c457c3b93f22a8e33
MD5 8d03ec81d890cf29148344d38d886940
BLAKE2b-256 6e2415bc281380e41e6dac40b811f13ef377a5569e8018b886fbd1a4ffbf8ca7

See more details on using hashes here.

File details

Details for the file celery_client_stubs-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: celery_client_stubs-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for celery_client_stubs-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d2fc62877fa1b25abca5d24b1cf1f219176fa3a84b98f9932256a92d2e125367
MD5 75b1d4065fc4ca46ea5c165b777b1259
BLAKE2b-256 defbc15f60adfabb085fa284aa911209012744721fa3698256edc974a4c53fd7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page