每当gem时都运行rails,仅在满足特定条件时运行命令。

萨希尔·丹卡(Sahil Dhankhar)

每当我们在项目中使用带导轨的宝石时,我们都会使用它。我知道我们可以在每当有这样的宝石时使用一个时间表。

every 1.day, :at => '6:00 am' do
  command "echo 'hello'"
end

但是我的问题是我只想在满足某些条件时才执行此命令。这样的事情。

every 1.day, :at => '6:00 am' do
 if User.any_new_user? 
  command "echo 'hello'"
 end
end

我们如何通过everyth和rails实现这一目标?我能想到的一种可能的解决方案是,我为此创建一个运行器并检查那里的条件。

every 1.day, :at => '6:00 am' do
  runner "User.say_conditional_hello"
end

在我的用户模型中:

def self.say_conditional_hello
    `echo "Hello"`
end  

关于此方法或任何新方法的任何建议将非常有帮助。

提前致谢!。

马克·贾德

如果你想只有当条件为真,那么我不认为它有可能你可以计划任务,然后当它的时间运行任务,代码可以决定是否应该运行与否,取决于计划任务的情况

我能想到的一种可能的解决方案是,我为此创建一个运行器并检查那里的条件。

是的,这是处理此问题的一种方式,但是IMO在使用每当创建创建检查条件然后执行代码或执行工作的rake任务时的最佳行为

就像是:

耙任务

namespace :user do
  desc "description"
  task check_for_new: :environment do
    if User.any_new_user? 
      # code
    end
  end
end 

在您的schedule.rb文件中

every 1.day, :at => '6:00 am' do
  rake "user:check_for_new"
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Gitlab CI CD 仅在满足特定条件时运行流水线步骤

Postgres-每当行满足特定条件时更新运行计数

如何仅在满足特定条件的情况下运行后台任务?

如何编写仅在满足条件时运行的 SQL 语句?

仅在道具中满足特定条件时添加HoC

仅在满足特定条件时如何使用$ addFields(聚合)

Postgresql - 如何仅在满足特定条件时插入

如何仅在满足特定条件时选择记录

每当行满足特定条件时,如何在行之间找到最大值?

仅在满足特定条件时,在特定时间后自动更新字段

如何编写仅在条件满足时自动运行的方法

MySQL 仅在满足条件时才运行 select 语句

仅在满足条件时如何运行cor.test?

满足多个条件时运行方法

满足特定条件时关闭 AlertDialog

满足特定条件时关闭QMessageBox

GitLab-CI:仅在满足所有条件时运行作业

仅在满足特定条件时如何激活OSGI捆绑包?

仅在满足特定条件时执行调整大小功能

SQL查询仅在满足特定条件时才选择行

仅在满足特定条件时才对二维数组执行操作

猫鼬:批量更新,但仅在满足特定条件时才更新记录

仅在满足特定条件时使用$ in运算符-猫鼬

仅在满足布尔/特定条件时才删除重复项

仅在满足特定条件时才向 mongoDB 文档数组添加新元素

Mongodb查询:仅在满足特定条件时才加入文档

如果满足特定条件,如何防止特定行以下的行在python中运行?

如何仅在满足特定条件后从函数返回

如果仅在MongoDB中满足特定条件,则进行分组