我使用 rails 生成器创建了我的第一个工作:
rails g job do_something
创建了作业文件:
class DoSomethingJob < ApplicationJob
queue_as :default
def perform(*args)
# Do something later
end
end
splat 运算符对我来说是新的(我知道它可以用来传递多个参数,它会将它们分组到一个数组中(。 我的问题是,为什么默认情况下作业带有 splat 运算符 -def perform(*args)
?我的诱惑是简单地删除默认*args
但我担心我可能会错过一些东西。
删除默认*args
并像我为任何其他方法一样创建参数有什么问题吗?还是我需要在所有作业中使用 splat 运算符?
任何和所有的帮助感谢!
execute 方法的构造及其使用完全取决于您;如果您删除 splat 运算符,您不会错过任何事情,调用作业不会传递隐式参数或您应该使用 args.last 或类似的东西处理的任何内容。
无论如何,splat 运算符只为您提供与任何红宝石方法相同的多功能性,并且 rails 将其用作占位符。