Ruby on rails 是否在后台运行活动作业方法取决于场景
我正在使用活动作业在后台运行我的作业。但我想在一个场景中在后台运行一个作业,在另一个场景中不在后台运行该作业。请告诉我如何才能做到这一点 例如:Ruby on rails 是否在后台运行活动作业方法取决于场景,ruby-on-rails,ruby,delayed-job,rails-activejob,Ruby On Rails,Ruby,Delayed Job,Rails Activejob,我正在使用活动作业在后台运行我的作业。但我想在一个场景中在后台运行一个作业,在另一个场景中不在后台运行该作业。请告诉我如何才能做到这一点 例如: def update_name(user_id, name) user = User.find_by_id(user_id) user.update_attribute(:name, name) end handle_asynchronously :update_name, if is_delayed 在本例中,如果is\u delayed为tr
def update_name(user_id, name)
user = User.find_by_id(user_id)
user.update_attribute(:name, name)
end
handle_asynchronously :update_name, if is_delayed
在本例中,如果is\u delayed为true,我将在后台运行update\u name方法。如果is\u delayed为false,则update\u name将不会在后台运行。那么在活动作业中是否仍有此操作?您可以相应地使用
立即执行或稍后执行
class UpdateUserNameJob < ActiveJob::Base
queue_as :default
def perform(user_id, name)
user = User.find_by_id(user_id)
user.update_attribute(:name, name)
end
end
您可以相应地使用立即执行
或稍后执行
class UpdateUserNameJob < ActiveJob::Base
queue_as :default
def perform(user_id, name)
user = User.find_by_id(user_id)
user.update_attribute(:name, name)
end
end
只需在该类中定义一个将返回布尔值的is\u delayed
方法,只需在该类中定义一个将返回布尔值的is\u delayed
方法value@AshikSalamn您能告诉我“现在执行”是否异步运行吗?perform\u now
将立即执行作业而不排队。@AshikSalamn您能告诉我吗告诉我“现在执行”是否异步运行?perform\u now
将立即执行作业而不排队。