哪些请求应该由网络服务器处理,哪些由任务队列工作者处理?
Posted
技术标签:
【中文标题】哪些请求应该由网络服务器处理,哪些由任务队列工作者处理?【英文标题】:Which requests should be handled by the webserver and which by a task queue worker? 【发布时间】:2021-12-03 02:31:02 【问题描述】:我正在开发一个使用 Celery 来安排和执行用户作业请求的 Python Web 应用程序。
大多数情况下,用户提交的请求无法立即得到解决,因此将它们安排在队列中对我来说是有意义的。
但是,现在我已经有了整个队列架构,我很困惑是否应该将所有请求处理逻辑委托给队列/workers,或者是否应该将一些工作留给网络服务器本身。
例如,除了作业调度,有时用户只需要执行简单的数据库查询,或检索静态 JSON 文件。我是否也应该将这些“同步”请求委托给队列/工作人员?
现在,我的网络服务器控制器除了验证传入的 JSON 请求模式并将它们转发到队列之外什么都不做。拥有这样一个愚蠢的网络服务器有什么优点和缺点?
【问题讨论】:
【参考方案1】:我相信你现在拥有它的方式加上现在给工人提供小工作是好的。这样一来,一旦发生攻击或大量请求涌入,工作人员将首先超载。 :)
【讨论】:
以上是关于哪些请求应该由网络服务器处理,哪些由任务队列工作者处理?的主要内容,如果未能解决你的问题,请参考以下文章