2

我有一份在其perform方法中接收哈希参数的工作。我想定期调用它。我定义了一个 CRON 来安排它在resque_schedule.yml文件上。我正在尝试这种方式:

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

但是,在工作中,我将参数作为数组获取:

["classifier", "SIAPE"]

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

4

2 回答 2

1

在您HashCeilingfish示例中包含的那个之间,我看到了差异:

你可以这样标记

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

注意间距在这里很重要。“-”必须缩进一个空格(不是制表符),后跟一个空格。并且 url & label 必须缩进两个空格(也不是制表符)。

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

这是来自 www.yaml.org

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

YAML 中的简单内联哈希?

hash: { name: Steve, foo: bar } 

红宝石

Ruby中的简单内联哈希?

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

我还包括来自官方 YAMLSyntax 的这个链接,对此有很多解释

将 Ruby 哈希转换为 YAML https://codedump.io/share/w2EriSJ0wO7T/1/convert-ruby-hash-into-yaml

于 2017-10-30T14:55:03.470 回答
1

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

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

此外,如果您在 Resque 作业中需要更多参数,只需将它们放置在没有更多破折号的位置:

UpdateInterestHistoryJob:
  cron: "* * * * * America/Sao_Paulo"
  args:
    - classifier: :SIAPE
      another: value
于 2017-10-30T20:57:16.027 回答