Ruby on rails Resque调度程序将哈希参数传递给作业

Ruby on rails Resque调度程序将哈希参数传递给作业,ruby-on-rails,resque,resque-scheduler,Ruby On Rails,Resque,Resque Scheduler,我有一个作业在其perform方法中接收哈希参数。我想定期给它打电话。我定义了一个CRON来在resque_schedule.yml文件中调度它。我试着这样做: UpdateInterestHistoryJob: cron: "0 0 * * * America/Sao_Paulo" args: classifier: :SIAPE 但是,在作业中,我将参数作为数组获取: ["classifier", "SIAPE"] 如何正确定义它?如何将job参数定义为yml文件上的散列

我有一个作业在其perform方法中接收哈希参数。我想定期给它打电话。我定义了一个CRON来在resque_schedule.yml文件中调度它。我试着这样做:

UpdateInterestHistoryJob:
  cron: "0 0 * * * America/Sao_Paulo"
  args:
    classifier: :SIAPE
但是,在作业中,我将参数作为数组获取:

["classifier", "SIAPE"]
如何正确定义它?如何将job参数定义为yml文件上的散列?

在您的散列和我看到的差异中包含的散列之间:

你可以这样做

注意,此处的间距很重要。-必须缩进一个空格,而不是制表符,后跟一个空格。url和标签必须缩进两个空格,而不是制表符

此外,这可能会有帮助:

这是来自www.yaml.org的

简单内联散列 映射也可以使用内联语法包含在一行中。每个键值对用冒号分隔,映射中的每个条目之间用逗号分隔。用大括号括起来。 亚马尔

YAML中的简单内联哈希

红宝石

Ruby中的简单内联哈希

我还包括官方的YAMLSyntax,对此有很多解释


我刚刚在这里测试过,一个简单的破折号就足够了:

UpdateInterestHistoryJob:
  cron: "* * * * * America/Sao_Paulo"
  args:
    - classifier: :SIAPE
此外,如果您的Resque作业中需要更多参数,只需将它们放置在不带破折号的位置:

UpdateInterestHistoryJob:
  cron: "* * * * * America/Sao_Paulo"
  args:
    - classifier: :SIAPE
      another: value
{ 'hash' => { 'name' => 'Steve', 'foo' => 'bar' } } 
UpdateInterestHistoryJob:
  cron: "* * * * * America/Sao_Paulo"
  args:
    - classifier: :SIAPE
UpdateInterestHistoryJob:
  cron: "* * * * * America/Sao_Paulo"
  args:
    - classifier: :SIAPE
      another: value