We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
问题描述/What happened:
调度执行任务时,如果任务没有正确入队的话会返回错误,但是很多调用的地方都没有处理ScheduleRun返回的错误,因此会出现数据库中的任务状态始终无法推进的情况,并且没有一个恢复机制用来处理这些异常状态的任务。
环境/Environment: 所有
如何复现/How to reproduce 将 pkg/cloudcommon/db/taskman/worker.go 中的 taskWorkMan 修改为1个工作者以及队列长度为1或者其他较小的值,然后触发任意会调用ScheduleRun的业务。
The text was updated successfully, but these errors were encountered:
@nomagicln 一般来说,出现这种情况系统已经基本不可用,所以未考虑task队列满的异常处理。我感觉应该首先解决导致task队列满的问题。一个常见原因是未正确设置http请求的超时,导致大量任务长期阻塞,导致task队列满。
Sorry, something went wrong.
@swordqiu HTTP请求超时是一个原因吧,但是还有另外两个原因影响更大,一个是很多任务执行周期长是因为异步任务同步化导致的,比如cloudmux中有很多对实例操作完需要等待状态就绪的操作,另一个是TaskWorkerManager是默认的调度执行器,整个任务调度体系基本上全依靠这一个实例在做事情,但这个执行器默认只有4*1024的缓存大小,纳管的规模稍微大一点这个大小就捉襟见肘了。
@nomagicln 在master分支,增加了 task_worker_count 和 local_task_worker_count 来控制这两个task manager的worker并发数量
No branches or pull requests
问题描述/What happened:
调度执行任务时,如果任务没有正确入队的话会返回错误,但是很多调用的地方都没有处理ScheduleRun返回的错误,因此会出现数据库中的任务状态始终无法推进的情况,并且没有一个恢复机制用来处理这些异常状态的任务。
环境/Environment:
所有
如何复现/How to reproduce
将 pkg/cloudcommon/db/taskman/worker.go 中的 taskWorkMan 修改为1个工作者以及队列长度为1或者其他较小的值,然后触发任意会调用ScheduleRun的业务。
The text was updated successfully, but these errors were encountered: