-
-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dramatiq workers hangs very often, no logs were seen in logs even if it is verbose mode. #578
Comments
We got something similiar with --process 1 --threads 2. When Worker consume one queue and produce messages to another. Quick fix was |
I've observed similar behavior when the CPU reaches 100%. |
I have the same issue with 1.15 (python 3.11) using the AsyncIO middleware. |
I am seeing this as well running with |
I'm released thread-safe broker implemention https://github.com/spumer/dramatiq-kombu-broker/ |
hey what combination work wells whether it is dramatiq kombu broker and redis as backend , |
Works well with |
Is there a way to check the current status of a Dramatiq task by its jobId? Specifically, to determine if it is still running or has completed? Also, is it possible to assign a custom name to the job, similar to a functionality available in Celery? In Celery, you can achieve this with the following code: celery_task = celery.AsyncResult(id=job_id, app=celery)
if celery_task.state != 'REVOKED': My primary intention is to manage long-running tasks by being able to terminate them if necessary. How can I remove such tasks from the queue in Dramatiq? |
We solve it by https://github.com/Bogdanp/django_dramatiq, it has Task model and middleware which write message status
You mean |
result.revoke() AsyncResult(id).revoke() app.control.revoke('d9078da5-9915-40a0-bfa1-392c7bde42ed') app.control.revoke('d9078da5-9915-40a0-bfa1-392c7bde42ed', app.control.revoke('d9078da5-9915-40a0-bfa1-392c7bde42ed', |
You need to implement manually. Dramatiq has no functionality to revoke task. I think it can be done by implement like in celery: create queue for events and dispatch events by worker when done some action and listen for any other. Then you can implement "revoke event", and discard message when worker receive it |
Hi i am facing issue , can you tell me how to solve this @agamrp @spumer @Bogdanp I'm issuing a ticket for the following Dramatiq configuration and error: Actor Configuration
Dramatiq Setup
CrawlerDramatiq Configuration { Error
Issue I am encountering a |
Issues
GitHub issues are for bugs. If you have questions, please ask them on the mailing list.
Checklist
What OS are you using?
Centos
What version of Dramatiq are you using?
Dramatiq version 1.14.2
What did you do?
Processing parallel async requests using dramatiq
What did you expect would happen?
It should work properly it should receive messages and tasks, but it is getting hanged.
What happened?
We are processing parallel async requests. It will work fine for 3 days and again the same issue occurs. If we restart the workers then it works , how to fix this
dramatiq dramatiq_app.BatchOperationsDramatiqTasks --processes 1 --verbose
I cant see anything in logs files. Even logs getting hanged
error which i captured when logs got hanged
Exception in thread Thread-1: Traceback (most recent call last): File "/data/py3.9.7/lib/python3.9/[threading.py](https://threading.py/)", line 973, in _bootstrap_inner [self.run](https://self.run/)() File "/data/py3.9.7/lib/python3.9/[threading.py](https://threading.py/)", line 910, in run self._target(*self._args, **self._kwargs) File "/data/py3.9.7/Findly/lib/python3.9/site-packages/dramatiq/[cli.py](https://cli.py/)", line 328, in watch_logs data = event.recv_bytes() File "/data/py3.9.7/lib/python3.9/multiprocessing/[connection.py](https://connection.py/)", line 221, in recv_bytes buf = self._recv_bytes(maxlength) File "/data/py3.9.7/lib/python3.9/multiprocessing/[connection.py](https://connection.py/)", line 426, in _recv_bytes return self._recv(size) File "/data/py3.9.7/lib/python3.9/multiprocessing/[connection.py](https://connection.py/)", line 384, in _recv chunk = read(handle, remaining) MemoryError
The text was updated successfully, but these errors were encountered: