You are here: Home / LBN / Up2date / Plone and Zope / BastionLinux 25 / plone.app.celery-1.0-3.lbn25.noarch

plone.app.celery-1.0-3.lbn25.noarch

Package Attributes
RPM  plone.app.celery-1.0-3.lbn25.noarch.rpm Architecture  noarch Size  27295 Created  2023/06/18 04:32:25 UTC
Package Specification
Summary Celery distributed task queue into Plone
Group Application/Internet
License ZPL
Home Page http://linux.last-bastion.net
Description

This package integrates the `Celery` distributed task queue into Plone. It allows you to configure Celery from your zope.conf configuration file, and make sending task messages honor the Zope transaction manager.

Configuration =============

You can provide Celery configuration via the Zope configuration file. Here is an example:

    %import plone.app.celery
    <celery-config celery>
        server-email no-reply@vandelay.com
        admins George Costanza, george@vandelay.com
        admins Cosmo Kramer, kosmo@vandelay.com

        <broker>
            host localhost
            port 5672
            user guest
            password guest
            vhost /
        </broker>

        <celery>
            ignore-result true
            disable-rate-limits true

            task-publish-retry true
            <task-publish-retry-policy>
               max-retries 5
               interval-start 0
               interval-step 1
               interval-max 0.5
            </task-publish-retry-policy>

            default-queue default
            <queues>
                default dict(binding_key='default', exchange='default')
                feeds   dict(binding_key='feeds', exchange='feeds')
            </queues>
            <routes>
                feed.tasks.import_feed dict(queue='feeds')
                images.compress        image.compression.Compress
            </routes>
        </celery>
    </celery-config>

You must use the `%import plone.app.celery` statement to import the Celery configuration schema. The top-level section always is called `` and that section must have a name (due to zope.conf limitations), but it's name is otherwise ignored.

The Celery configuration is subdivided into namespaced sub-sections. Each Celery configuration key (as defined in the `Celery configuration documentation`) consists of a namespace (such as `CELERY`, `CELERYD` or `BROKER`) and a configuration option (such as `HOST` or `ROUTES`); the only exceptions are the `SERVER_EMAIL` and `ADMINS` options. See the `Celery configuration defaults module` for a complete listing.

Note that many Celery options make no sense in a Zope server context as you would normally only send task messages, not run a worker to process tasks.

Using this subdivision, the ZConfig schema for Celery puts these options into a section for each namespace. Thus, all `BROKER` configuration is contained in a `` section, with each broker option lower-cased, underscores replaced with dashes. An option like `CELERY_TASK_PUBLISH_RETRY` thus becomes `task_publish_retry` in the `` section.

The ZConfig schema enforces the type information set by Celery, and any option that takes a tuple (such as `CELERY_TASK_ERROR_WHITELIST` or `ADMINS`) can be listed multiple times in zope.conf to list all items.

Options that take a dictionary (such as `CELERY_RESULT_ENGINE_OPTIONS` or `CELERY_QUEUES`) are configured in zope.conf using a new section with the option name, so in the case of `CELERY_QUEUES` add a `` section to the `celery` section listing each queue on a new line. Values are interpreted as python expressions.

Some options are handled specially:

  • The `ADMINS` option takes a `name, email address` pair.
  • `CELERY_TASK_RESULT_EXPIRES` is listed as a time delta using ZConfig formatting. The set of suffixes recognized by ZConfig are: ‘w’ (weeks), ‘d’ (days), ‘h’ (hours), ‘m’ (minutes), ‘s’ (seconds). Values may be floats, for example:4w 2.5d 7h 12m 0.001s.
  • For the `CELERY_ROUTES` option, you can either specify python classes named by a dotted path or a python dictionary.

By using the `%import plone.app.celery` line in your zope.conf configuration file, you automatically configure Celery to use the plone.app.celery loader. If you want to use a different loader, you need to set the `CELERY_LOADER` environment variable before the configuration file is processed.

Requires
rpmlib(PayloadFilesHavePrefix)  
rpmlib(FileDigests)  
rpmlib(CompressedFileNames)  
/bin/sh  
rpmlib(PartialHardlinkSets)  
rpmlib(PayloadIsXz)  
python-celery  
Provides
plone.app.celery
python2.7dist(plone.app.celery)
python2dist(plone.app.celery)
Obsoletes
plone.app.celery-egginfo

Document Actions