ruby-on-rails - Rails 应用程序中环境条件的代码重构
问题描述
在我的 Rails 应用程序中,我使用 sidekiq 进行作业调度以完成繁重的任务。所以,我在很多地方都有这段代码:
if Rails.env.development? or Rails.env.test?
#Call the method directly
else #Rails.env.production?
#Call the job via sidekiq that calls the said method
end
有什么办法可以清除这个吗?这些天我正在阅读软件设计模式。我无法在这里应用这些知识。您能否建议如何以更易于管理的方式清理或编写它?
解决方案
你可以把
require 'sidekiq/testing'
Sidekiq::Testing.inline!
在您的development.rb
和test.rb
配置文件中以获取您所追求的行为。在您的应用程序业务逻辑中,您将删除环境条件并只调用工作人员(现在将在测试和开发中同步运行)。
推荐阅读
- pyspark - 从许多 pyspark 列(具有特定条件)到结合所有条件的一列。火花
- mysql - 当一个表没有行时加入
- xml - 使用 XSL 在特定位置添加特定元素
- sql - PostgreSQL BETWEEN 运算符的行为不同
- amazon-web-services - 如何使用 AWS sign v4 API 创建签名 cookie?
- python - 如何在 Python 中正确定义一个跨包全局的变量?
- firebase-cloud-messaging - 如何从 Firebase 托管执行 Google Cloud Functions?
- python - 如何在模型中保存表单字段中的数据,并与从 AbstractUser 继承的模型建立一对一的关系
- html - 日期时间输入字段最小值和最大值的角度绑定
- angular - Angular 7具有不同参数的相同路由