czue / celery-progress

Drop in, configurable, dependency-free progress bars for your Django/Celery applications.
MIT License
472 stars 90 forks source link

Websocket progress doesn't update to success at 100% #65

Open PazimGoyal opened 4 years ago

PazimGoyal commented 4 years ago

when I use ProgressRecorder the progress bar updates at 100% and even the custom function is called but when I use WebsocketProgressRecorder with channels==2.2.0 and redis at reaches 100% and stays their. on further debug the status remains (in event in js) remains pending.

EJH2 commented 4 years ago

That's certainly not good. If you could provide the code for the task as well as more information about your python install/operating system, I'll go ahead and take a look at this. If you run your celery instance with the log level set to debug, does it error at all?

PazimGoyal commented 4 years ago

try: progress_recorder = WebSocketProgressRecorder(self)

progress_recorder=ProgressRecorder(self)

    processed_results = processing_data.process_data(request, progress_recorder)
    return processed_results

I am using channels==2.2.0 / 2.1.2 ( testing on both) , daphne==2.5.0 redis/rabbitMQ as broker ( again testing both) , Everything runs on Docker composition. (nginx + uwsgi + daphne ) When I use Process Recorder and send http requests with task ID everything works fine but if using WebsocketProcessRecorder ,status always remain pending even if I do more then 100%. image

EJH2 commented 4 years ago

The only possibility that I can think of as to why the success event wouldn't fire is if the websocket post-run handler hasn't been properly connected. In your INSTALLED_APPS, can you confirm that celery_progress.websockets is present?