Resque调度程序将哈希参数传递给Job

时间:2017-10-30 11:17:47

标签: ruby-on-rails resque resque-scheduler

我的作业在其perform方法中接收到哈希参数。我想定期打电话。我定义了一个CRON来在resque_schedule.yml文件上安排它。我这样想:

UpdateInterestHistoryJob:
  cron: "0 0 * * * America/Sao_Paulo"
  args:
    classifier: :SIAPE

但是,在作业中,我将参数作为数组得到:

["classifier", "SIAPE"]

如何正确定义?如何将作业参数定义为yml文件的哈希值?

2 个答案:

答案 0 :(得分:1)

Hashin this example Ceilingfish之间的

我发现存在差异:

  

你可以像这样标记

feeds:
 - 
  url: 'http://www.google.com'
  label: 'default'
  

注意这里的间距很重要。 “ - ”必须由单个空格(不是制表符)缩进,后跟单个空格。和网址& label必须缩进两个空格(不是标签)。

     

此外,这可能会有所帮助:http://www.yaml.org/YAML_for_ruby.html

这是来自ww.yaml.org

  

简单的内联哈希   映射也可以使用内联语法包含在一行中。每个键值对由冒号分隔,映射中的每个条目之间都有逗号。附上花括号。   YAML

     

YAML中的简单内联哈希?

hash: { name: Steve, foo: bar } 
  

红宝石

     

Ruby中的简单内联哈希?

{ 'hash' => { 'name' => 'Steve', 'foo' => 'bar' } } 

我还包括来自官方YAMLSyntax的this link,并且有很多关于此的解释

Convert Ruby Hash into YAML https://codedump.io/share/w2EriSJ0wO7T/1/convert-ruby-hash-into-yaml

答案 1 :(得分:1)

我刚刚在这里测试过一个简单的短划线就足够了:

UpdateInterestHistoryJob:
  cron: "* * * * * America/Sao_Paulo"
  args:
    - classifier: :SIAPE

此外,如果您在Resque作业中需要更多参数,只需将它们放置一下即可:

UpdateInterestHistoryJob:
  cron: "* * * * * America/Sao_Paulo"
  args:
    - classifier: :SIAPE
      another: value