我正在构建一个允许用户上载图像的Web应用程序。上传图片时,需要将其调整为一种或多种尺寸,每种尺寸都需要发送到Amazon s3进行存储。每个图像大小的元数据和URL都存储在Web服务器上的单个数据库记录中。我正在使用消息队列异步执行调整大小和上传(因为每个请求可能会有大图像和多个大小调整)。调整大小/上传任务完成时,数据库记录需要使用url进行更新。将数据库与消息队列分离的最佳做法
我的问题是执行任务的工作人员将无法访问数据库。我正在考虑在完成任务后使用适当的信息更新数据库记录,从工作人员发回http回调到Web应用程序。有其他的选择或原因,我应该以另一种方式做到这一点?
我使用python/pylons作为web后端,mysql作为数据库,而celery/amqp作为消息传递。
谢谢!
“...执行任务的工作人员将无法访问数据库。”有什么特别的原因? –
大多数情况下,工作人员将在不同的机器上运行,并且不会直接访问数据库(出于安全原因)。 –