Comments (6)
Alright thanks for the feedback! I'll probably start with this next week and then create a PR once I'm done.
from django-health-check.
@MarcoGlauser I gave it a try myself. Check out the develop branch. It would be cool if you could actually test it too.
I haven't added documentation about the changes yet, but I will soon.
from django-health-check.
Hey!
Seems like this would be a great API compatible thing to implement. The AsyncResult.get
API is available in all versions of Celery: version 4, version 3, and the archived version 2.
There is some ongoing discussion and work you should check out in Issue #70 and PR #73 that are yet to receive comments from @codingjoe, the current maintainer, or the package author, but for me it seems that it would be great if we could either combine the Celery health checks to be compatible with all Celery versions (3 and 4 are already compatible, but I think we could support version 2 from the same code base just as well). I was personally dreaming about renaming the health_check_celery3
backend to health_check_celery
before cleaning the implementations up.
For the module it seems like we could just use offer one health_check_celery
plugin that would:
- Try to import Celery 4 or 3 and compatible task APIs, and check the Celery version. If both of those are unavailable:
- Try to import Celery 2 and compatible task APIs, and check the Celery version. If that is unavailabe as well:
- Raise an ImportError with stacktrace about all Celery packages being unimportable.
from django-health-check.
@MarcoGlauser that a very good idea. I actually use a very different backend on my own production systems, but sure.
Regarding the version support. We only need to support celery 4. We don't test for any other version. Legacy support just makes maintaining this package that much more difficult.
from django-health-check.
Sorry didn't get to test it earlier.
I tested it today and it's working great. It halved the time the health check takes with a rabbitmq broker and redis backend!
from django-health-check.
That's good to hear!
from django-health-check.
Related Issues (20)
- CeleryPingHealthCheck is catching BaseException and really, *really*, **really** shouldn't :smile:
- Provide an option to disable checks in threads HOT 3
- Provide a fix to avoid " The DEFAULT_FILE_STORAGE setting is deprecated" HOT 1
- Question: how do I disable Celery Task received/succeeded log messages HOT 1
- Cache key does not match, what problem could it be? HOT 7
- AttributeError: 'ChannelPromise' object has no attribute '__value__' HOT 1
- It doesn't work with Django 4.1 HOT 5
- health_check.exceptions.ServiceUnavailable: unavailable: Unknown exception HOT 1
- Redis SSL HOT 1
- Django health check endpoints doesnt appear in generated openapi schema
- Celery health check timeout exceptions and TaskRevokedError HOT 2
- Weblog at the end of the Readme doesn't exist anymore HOT 1
- Cache check backend is documented in the wrong place
- A new release was required. HOT 1
- Issue with S3Boto3StorageHealthCheck Failing After Upgrading to django-health-check 3.18.0 on Django 5.0 HOT 5
- Bug: check_status() fails after upgrading to 3.18 HOT 1
- Custom error reporter or filter
- Connection refused on Celery health checks HOT 6
- Allow CeleryPingHealthCheck to check user-specific queues HOT 2
- CacheBackend subset key confusing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-health-check.