laravel - 多服务器中的laravel队列
问题描述
我要做UGC项目。我有一个主服务器(应用程序)和 4 个编码器服务器(用于转换视频)和一个存储服务器(用于托管视频)。我想在 laravel 队列中使用数据库驱动程序,我的目标数据库是作业。对于每个上传的视频,我有 5 个将视频转换为 240p、360p、480p、720p 和 1080p 的工作。但jobs没有指定属于哪些Encoder服务器。例如,在 Encoder Server #4 中上传了一个视频,但 Encoder Server #2 尝试启动作业并失败,因为文件在 Encoder Server #4 中,我该如何解决这个问题?
解决方案
正如@apokryfos 所说,将文件上传到共享存储,如 Amazon S3/谷歌云存储/数字海洋空间)......随便......
让处理作业从中央存储下载它,对其进行处理,然后将结果上传到另一个中央存储。
如果您将单个作业绑定到单个工作人员(如您所说的(编码器服务器)),这没有任何意义,而且它永远不会可扩展,并且几乎注定会遇到问题。
这样做,您可以在需要时增加工人的数量。你甚至可以自动缩放它们。
考虑使用 Kubernetes 部署,以允许轻松(自动)扩展。
推荐阅读
- python - 使用类方法创建 TKinter 标签
- python - 将 Python Byte 对象值保存为字符串
- python - 过滤元组内的元组
- postman - 如何获取 chrome 的默认客户端证书并在 postman 中使用?
- multithreading - 通过多线程使用 GPU 委托 v2 api 初始化多个 tflite 模型
- reactjs - nginx + 反向代理 + 反应路由器 - 路由不起作用
- javascript - 翻译 FullCalendar 标题
- saml - grails.plugin.springsecurity.saml.plugin 的错误甚至没有激活它在文件的运行时查看
- azure - Azure ADF 管道无法连接到 Azure SQL
- html - 无法使用环绕文本居中元素,因为文本环绕将父级设置为 100% 宽度