- Add ringdisabled to avoid pulling the test deps in rings to
keep them from growing too much
- Switch to multibuild in order to not pull moto everywhere
- Update to 4.3.0:
* See the changelog for in-depth details
- Remove merged patches:
* python37-1.patch
* python37-2.patch
* python37-3.patch
* disable-pytest-log-capturing.patch
* celery-no-redis.patch
* relax-billiard-pin.patch
- Rebase patch unpin-pytest.patch
OBS-URL: https://build.opensuse.org/request/show/718188
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-celery?expand=0&rev=27
- Update to 3.1.19:
* Requirements: Now depends on Kombu 3.0.29.
* Requirements: Now depends on billiard 3.3.0.21.
* Results: Fixed MongoDB result backend URL parsing problem
(Issue celery/kombu#375).
* Worker: Task request now properly sets priority in
delivery_info.
* Beat: PyPy shelve may raise KeyError when setting keys (Issue
#2862).
* Programs: celery beat --deatched now working on PyPy.
* Results: Redis result backend now ensures all pipelines are
cleaned up.
* Results: Redis result backend now allows for timeout to be set
in the query portion of the result backend URL.
* Results: result.get now properly handles failures where the
exception value is set to None (Issue #2560).
* Prefork pool: Fixed attribute error proc.dead.
* Worker: Fixed worker hanging when gossip/heartbeat disabled
(Issue #1847).
* Results: MongoDB result backend now supports pymongo 3.x (Issue
#2744).
* Results: RPC/amqp backends did not deserialize exceptions
properly (Issue #2691).
* Programs: Fixed problem with celery amqp‘s basic_publish (Issue
#2013).
* Worker: Embedded beat now properly sets app for thread/process
(Issue #2594).
* Documentation: Many improvements and typos fixed.
OBS-URL: https://build.opensuse.org/request/show/353455
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=91
- Now depends on billiard 2.7.3.28
- A Python 3 related fix managed to disable the deadlock fix
announced in 3.0.18.
Tests have been added to make sure this does not happen again.
- Task retry policy: Default max_retries is now 3.
This ensures clients will not be hanging while the broker is down.
You can set a longer retry for the worker by
using the celeryd_after_setup signal:
from celery.signals import celeryd_after_setup
@celeryd_after_setup.connect
def configure_worker(instance, conf, **kwargs):
conf.CELERY_TASK_PUBLISH_RETRY_POLICY = {
'max_retries': 100,
'interval_start': 0,
'interval_max': 1,
'interval_step': 0.2,
}
- Worker: Will now properly display message body in error messages
even if the body is a buffer instance.
- 3.0.18 broke the MongoDB result backend (Issue #1303).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=79
- Now depends on kombu 2.5.10.
See the kombu changelog.
- Now depends on billiard 2.7.3.27.
- Can now specify a whitelist of accepted serializers using
the new CELERY_ACCEPT_CONTENT setting.
This means that you can force the worker to discard messages
serialized with pickle and other untrusted serializers.
For example to only allow JSON serialized messages use::
CELERY_ACCEPT_CONTENT = ['json']
you can also specify MIME types in the whitelist::
CELERY_ACCEPT_CONTENT = ['application/json']
- Fixed deadlock in multiprocessing's pool caused by the
semaphore not being released when terminated by signal.
- Processes Pool: It's now possible to debug pool processes using GDB.
- celery report now censors possibly secret settings, like passwords
and secret tokens.
You should still check the output before pasting anything
on the internet.
- Connection URLs now ignore multiple '+' tokens.
- Worker/statedb: Now uses pickle protocol 2 (Py2.5+)
- Fixed Python 3 compatibility issues.
- Worker: A warning is now given if a worker is started with the
same node name as an existing worker.
- Worker: Fixed a deadlock that could occur while revoking tasks (Issue #1297).
- Worker: The :sig:`HUP` handler now closes all open file descriptors
before restarting to ensure file descriptors does not leak (Issue #1270).
- Worker: Optimized storing/loading the revoked tasks list (Issue #1289).
After this change the --statedb file will take up more disk space,
but loading from and storing the revoked tasks will be considerably
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=78
- Happy International Women's Day!
We have a long way to go, so this is a chance for you to get
involved in one of the organizations working for making our
communities more diverse.
- PyLadies — http://pyladies.com
- Girls Who Code — http://www.girlswhocode.com
- Women Who Code — http://www.meetup.com/Women-Who-Code-SF/
- Now depends on :mod:`kombu` version 2.5.7
- Now depends on :mod:`billiard` version 2.7.3.22
- AMQP heartbeats are now disabled by default.
Some users experiences issues with heartbeats enabled,
and it's not strictly necessary to use them.
If you're experiencing problems detecting connection failures,
you can re-enable heartbeats by configuring the BROKER_HEARTBEAT
setting.
- Worker: Now propagates connection errors occurring in multiprocessing
callbacks, so that the connection can be reset (Issue #1226).
- Worker: Now propagates connection errors occurring in timer callbacks,
so that the connection can be reset.
- The modules in CELERY_IMPORTS and CELERY_INCLUDE
are now imported in the original order (Issue #1161).
The modules in CELERY_IMPORTS will be imported first,
then continued by CELERY_INCLUDE.
Thanks to Joey Wilhelm.
- New bash completion for celery available in the git repository:
https://github.com/celery/celery/tree/3.0/extra/bash-completion
You can source this file or put it in bash_completion.d to
get auto-completion for the celery command-line utility.
- The node name of a worker can now include unicode characters (Issue #1186).
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=77
- Now depends on Kombu 2.5.6
- Now depends on billiard 2.7.3.20
- execv is now disabled by default.
It was causing too many problems for users, you can still enable
it using the CELERYD_FORCE_EXECV setting.
execv was only enabled when transports other than amqp/redis was used,
and it's there to prevent deadlocks caused by mutexes not being released
before the process forks. Sadly it also changes the environment
introducing many corner case bugs that is hard to fix without adding
horrible hacks. Deadlock issues are reported far less often than the
bugs that execv are causing, so we now disable it by default.
Work is in motion to create non-blocking versions of these transports
so that execv is not necessary (which is the situation with the amqp
and redis broker transports)
- Chord exception behavior defined (Issue #1172).
From Celery 3.1 the chord callback will change state to FAILURE
when a task part of a chord raises an exception.
It was never documented what happens in this case,
and the actual behavior was very unsatisfactory, indeed
it will just forward the exception value to the chord callback.
For backward compatibility reasons we do not change to the new
behavior in a bugfix release, even if the current behavior was
never documented. Instead you can enable the
CELERY_CHORD_PROPAGATES setting to get the new behavior
that will be default from Celery 3.1.
See more at chord-errors.
- worker: Fixes bug with ignored and retried tasks.
The on_chord_part_return and Task.after_return callbacks,
nor the task_postrun signal should be called when the task was
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=75
- Now depends on Kombu 2.5
- py-amqp has replaced amqplib as the default transport,
gaining support for AMQP 0.9, and the RabbitMQ extensions
including Consumer Cancel Notifications and heartbeats.
- support for multiple connection URLs for failover.
- Read more in the Kombu 2.5 changelog.
- Now depends on billiard 2.7.3.19
- Fixed a deadlock issue that could occur when the producer pool
inherited the connection pool instance of the parent process.
- The --loader option now works again (Issue #1066).
- celery umbrella command: All subcommands now supports
the --workdir option (Issue #1063).
- Groups included in chains now give GroupResults (Issue #1057)
Previously it would incorrectly add a regular result instead of a group
result, but now this works:
# [4 + 4, 4 + 8, 16 + 8]
>>> res = (add.s(2, 2) | group(add.s(4), add.s(8), add.s(16)))()
>>> res
<GroupResult: a0acf905-c704-499e-b03a-8d445e6398f7 [
4346501c-cb99-4ad8-8577-12256c7a22b1,
b12ead10-a622-4d44-86e9-3193a778f345,
26c7a420-11f3-4b33-8fac-66cd3b62abfd]>
- Chains can now chain other chains and use partial arguments (Issue #1057).
Example:
>>> c1 = (add.s(2) | add.s(4))
>>> c2 = (add.s(8) | add.s(16))
>>> c3 = (c1 | c2)
# 8 + 2 + 4 + 8 + 16
>>> assert c3(8).get() == 38
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=74