- Update to 5.5.3
* Make the tests run on python 3.13 for gcs backend (#9677)
* Added DeepWiki to README (#9683)
* Limit redis to <=v5.2.1 to match Kombu (#9693)
* Use EX_OK instead of literal zero (#9684)
* Make wheel metadata reproducible (#9687)
* Let celery install from kombu dependencies for better align (#9696)
* Fix stamping documentation to clarify stamped_headers key is optional
in visitor methods (#9697)
* Support apply_async without queue argument on quorum queues (#9686)
* Updated rabbitmq doc about using quorum queues with task routes (#9707)
* Add: Dumper Unit Test (#9711)
* Add unit test for event.group_from (#9709)
* Refactor: add beat_cron_starting_deadline documentation warning (#9712)
* Fix: Resolve issue #9569 by supporting distinct broker transport
options for workers (#9695)
* Fixes issue with retry callback arguments in DelayedDelivery (#9708)
* get_exchange-unit-test (#9710)
* ISSUE-9704: Update documentation of result_expires, filesystem backend
is supported (#9716)
* Update to blacksmith ubuntu 24.04 (#9717)
* Added unit tests for celery.utils.iso8601 (#9725)
* Update introduction.rst docs (#9728)
* Prepare for release: v5.5.3 (#9732)
OBS-URL: https://build.opensuse.org/request/show/1284472
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=164
- Update to 5.4.0
* Add a Task class specialised for Django
* Add Google Cloud Storage (GCS) backend
* Added documentation to the smoke tests infra
* Bugfix: Missing id on chain
* Bugfix: Worker not consuming tasks after Redis broker restart
* Catch UnicodeDecodeError when opening corrupt beat-schedule.db
* chore(ci): Enhance CI with workflow_dispatch for targeted debugging
* Enable efficient chord when using dynamicdb as backend store
* feat(daemon): allows daemonization options to be fetched from app
settings
* Fix DeprecationWarning: datetime.datetime.utcnow()
* Fix recursive result parents on group in middle of chain
* Hotfix: Smoke tests didn’t allow customizing the worker’s command
arguments, now it does
* Make custom remote control commands available in CLI
* Print safe_say() to stdout for non-error flows
* Support moto 5.0
- Drop support-moto-5.patch
OBS-URL: https://build.opensuse.org/request/show/1185136
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=158
* Update task.py get_custom_headers missing 'compression' key
* Basic ElasticSearch / ElasticClient 8.x Support
* Fix eager tasks does not populate name field
* Fix: serialization error when gossip working
* Stamping bugfix with group/chord header errback linking
* Fixed issue: Flags broker_connection_retry_on_startup &
broker_connection_retry aren’t reliable
* Use string value for CELERY_SKIP_CHECKS envvar
* Added initial support for python 3.11
* Fixed a small float value of retry_backoff
* Update CELERY_TASK_EAGER setting in user guide
* Fixed bug where retrying a task loses its stamps
* Warn when an unnamed periodic task override another one.
* Fix Task.handle_ignore not wrapping exceptions properly
* Align revoke and revoke_by_stamped_headers return values (terminate=True)
* Added signal triggered before fork
* Deprecate pytz and use zoneinfo
* recreate_module: set spec to the new module
* Do not recommend using easy_install anymore
* importlib_metadata remove deprecated entry point interfaces
* New control command revoke_by_stamped_headers
* Remove reference to old Python version
* Stamping a task left the task properties dirty
* Bugfix for nested group stamping on task replace
* Add broker_channel_error_retry option
* async chords should pass it's kwargs to the group/body.
* Fix honor Django's TIME_ZONE setting.
* Remove Python 3.4 compatibility code.
* Use importlib instead of deprecated pkg_resources.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=156
- Update to version 5.2.7
* Depend on the maintained python-consul2 library. (#6544).
* Use result_chord_join_timeout instead of hardcoded default value.
* Upgrade AzureBlockBlob storage backend to use Azure blob storage
library v12 (#6580).
* Exit celery with non zero exit value if failing (#6602).
* Raise BackendStoreError when set value is too large for Redis.
* Trace task optimizations are now set via Celery app instance.
* Add store_eager_result setting so eager tasks can store result on
the result backend (#6614).
* Allow heartbeats to be sent in tests (#6632).
* Simulate more exhaustive delivery info in apply().
* Start chord header tasks as soon as possible (#6576).
* --quiet flag now actually makes celery avoid producing logs
(#6599).
* Update platforms.py "superuser privileges" check (#6600).
* fnmatch.translate() already translates globs for us. (#6668).
* Upgrade some syntax to Python 3.6+.
* Fix checking expiration of X.509 certificates (#6678).
* Fix JSON decoding errors when using MongoDB as backend (#6675).
* Allow configuration of RedisBackend's health_check_interval
(#6666).
* Tasks can now have required kwargs at any order (#6699).
* Initial support of python 3.9 added.
* Add Python 3.10 support (#6807).
* Fix docstring for Signal.send to match code (#6835).
* Chords get body_type independently to handle cases where body.type
does not exist (#6847).
* Fix multithreaded backend usage (#6851).
* Fix Open Collective donate button (#6848).
OBS-URL: https://build.opensuse.org/request/show/989213
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=147
* Fix _autodiscover_tasks_from_fixups (#6424).
* Flush worker prints, notably the banner (#6432).
* Breaking Change: Remove ha_policy from queue definition. (#6440)
* This argument has no effect since RabbitMQ 3.0. Therefore, We feel
comfortable dropping it in a patch release.
* Python 3.9 support (#6418).
* Regression: When using the prefork pool, pick the fair scheduling strategy
by default (#6447).
* Preserve callbacks when replacing a task with a chain (#6189).
* Fix max_retries override on self.retry() (#6436).
* Raise proper error when replacing with an empty chain (#6452)
* Specify UTF-8 as the encoding for log files (#6357).
* Custom headers now propagate when using the protocol 1 hybrid messages
(#6374).
* Retry creating the database schema for the database results backend in case of a race condition (#6298).
* When using the Redis results backend, awaiting for a chord no longer hangs
when setting :setting:`result_expires` to 0 (#6373).
* When a user tries to specify the app as an option for the subcommand, a
custom error message is displayed (#6363).
* Fix the --without-gossip, --without-mingle, and --without-heartbeat options
which now work as expected. (#6365)
* Provide a clearer error message when the application cannot be loaded.
* Avoid printing deprecation warnings for settings when they are loaded from
Django settings (#6385).
* Allow lowercase log levels for the --loglevel option (#6388).
* Detaching now works as expected (#6401).
* Restore broadcasting messages from celery control (#6400).
* Pass back real result for single task chains (#6411).
* Ensure group tasks a deeply serialized (#6342).
* Fix chord element counting (#6354).
* Restore the celery shell command (#6421).
* Breaking Change Remove AMQP result backend (#6360).
* Warn when deprecated settings are used (#6353).
* Expose retry_policy for Redis result backend (#6330).
* Prepare Celery to support the yet to be released Python 3.9 (#6328).
* More cleanups of leftover Python 2 support (#6338).
* Bump minimum required eventlet version to 0.26.1.
* Update Couchbase Result backend to use SDK V3.
* Restore monkeypatching when gevent or eventlet are used.
* Allow to opt out of ordered group results when using the Redis result
backend (#6290).
* Breaking Change Remove the deprecated celery.utils.encoding module.
* Breaking Change Drop support for the Riak result backend (#5686).
* Breaking Change pytest plugin is no longer enabled by default (#6288).
Install pytest-celery to enable it.
* Breaking Change Brand new CLI based on Click (#5718).
* Bump Kombu version to 5.0 (#5686).
* Removed most of the compatibility code that supports Python 2 (#5686).
* Modernized code to work on Python 3.6 and above (#5686).
- Update BuildRequires/Requires.
- Add patch move-pytest-configuration-to-conftest.patch to fix testsuite.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=137
- Don't update to 5.0.0 because missing dependencies
- Update to version 4.4.7
+ Add task_received, task_rejected and task_unknown to signals
module.
+ [ES backend] add 401 as safe for retry.
+ treat internal errors as failure.
+ Remove redis fanout caveats.
+ FIX: -A and --args should behave the same. (#6223)
+ Class-based tasks autoretry (#6233)
+ Preserve order of group results with Redis result backend
(#6218)
+ Replace future with celery.five Fixes#6250, and reraise to
include
+ Fix REMAP_SIGTERM=SIGQUIT not working
+ (Fixes#6258) MongoDB: fix for serialization issue (#6259)
+ Make use of ordered sets in Redis opt-in
+ Test, CI, Docker, style and minor doc impovements.
OBS-URL: https://build.opensuse.org/request/show/838603
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-celery?expand=0&rev=134
- 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