如何解决即使芹菜工作者完成了任务,芹菜async_result.get仍挂起等待结果
我在远程主机上运行了一个长期运行的芹菜任务。完成后,结果get()方法将停留在等待芹菜工作者的结果。
Rabbitmq 用作消息代理,而 redis 用作后端。
我正在从烧瓶中呼叫apply_async()
,该作业已提交给远程Windows主机上的celery worker。
芹菜工人成功完成任务打印
Task test[93a4d8a9-b6b9-4a54-8d65-365584ecba9d] succeeded in 9828.842999999993s
但是结果get()
方法永远等待着。
在芹菜经纪人方面,我提到的可见性超时如下。这里的应用指的是芹菜实例。
app.conf.broker_transport_options = {"visibility_timeout": 14400,"max_retries": 3,"interval_start": 0,"interval_step": 0.2,"interval_max": 0.5}
在Celery客户端的get方法内部,我提到了超时,如下所示:
doors_res = doors_res_obj.get(timeout=14400)
当celery结果的get()中未提及超时时,应用程序将以挂起状态继续等待结果。
在get()中添加超时后,将发生连接重置错误。错误日志如下:-
Traceback (most recent call last):
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\flask\app.py",line 1950,in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\flask\app.py",line 1936,in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\flask_restplus\api.py",line 325,in wrapper
resp = resource(*args,**kwargs)
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\flask\views.py",line 89,in view
return self.dispatch_request(*args,**kwargs)
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\flask_restplus\resource.py",line 44,in dispatch_request
resp = meth(*args,**kwargs)
File "C:\Users\venugopal.venkatesh\OneDrive - Veoneer\Documents\sprint35\Testing_with_Docker_env\flask\src\application\routes.py",in wrap
return f(*args,**kwargs)
File "C:\Users\venugopal.venkatesh\OneDrive - Veoneer\Documents\sprint35\Testing_with_Docker_env\flask\src\db\__init__.py",line
280,**kwargs)
File "C:\Users\venugopal.venkatesh\OneDrive - Veoneer\Documents\sprint35\Testing_with_Docker_env\flask\src\doors\routes.py",line 127,in post
abort(503,ex)
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\flask_restplus\errors.py",line 31,in abort
flask.abort(code)
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\werkzeug\exceptions.py",line 772,in abort
return _aborter(status,*args,**kwargs)
File "C:\Users\venugopal.venkatesh\.virtualenvs\flask-2pC1ju1x\lib\site-packages\werkzeug\exceptions.py",line 753,in __call__
raise self.mapping[code](*args,**kwargs)
werkzeug.exceptions.ServiceUnavailable: 503 Service Unavailable: The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
2020-09-13 14:32:49,467 WARNING MainProcess - {'message': '[WinError 10054] An existing connection was forcibly closed by the remote host'}
**WARNING:debuglog:{'message': '[WinError 10054] An existing connection was forcibly closed by the remote host'}**
有关如何解决此问题的任何指示?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。