我的模型中有两个附件,原始的和修改的。
我的应用程序允许用户上传音频文件,后端应将其转换为修改后的格式。
使用回形针将原始文件上传到 s3。现在我需要在后台处理这个文件并将其上传到 s3 并更新数据库中修改后的附件。
从原始到附件的转换是通过一个简单的系统命令进行的,因此我可以从我的 ruby 方法中调用它。我的问题是安排此类工作的最佳方式是什么?对于这种情况,delayed_job 是一个不错的选择吗?我只需编写一个方法来处理原始文件并保存它,然后延迟调用此方法吗?
我的模型中有两个附件,原始的和修改的。
我的应用程序允许用户上传音频文件,后端应将其转换为修改后的格式。
使用回形针将原始文件上传到 s3。现在我需要在后台处理这个文件并将其上传到 s3 并更新数据库中修改后的附件。
从原始到附件的转换是通过一个简单的系统命令进行的,因此我可以从我的 ruby 方法中调用它。我的问题是安排此类工作的最佳方式是什么?对于这种情况,delayed_job 是一个不错的选择吗?我只需编写一个方法来处理原始文件并保存它,然后延迟调用此方法吗?
delayed_job
是一种广泛使用的解决方案,适用于需要大量完成但不是立即完成的应用程序。我会推荐它,除非您的用户将立即需要修改后的文件。
备择方案:
有关更多选项,请参阅:https ://www.ruby-toolbox.com/categories/Background_Jobs
Sidekiq 是做后台活动的好选择。
由于这将只是一次活动,因此理想情况下不需要 cron 作业。
完成上传原始视频的过程后,您可以在 Sidekiq 中添加带有基本参数的作业,这些参数将调用工人类并完成其余处理。
https://github.com/mperham/sidekiq/wiki
你也有很好的监控插件来监控你的工作处理