临时加入Addon的Cron语法

时间:2015-01-22 00:16:01

标签: ruby-on-rails ruby heroku cron

我正在尝试使用Heroku的Temporize Add-on,并且无法与其重复使用的API进行交互。任何帮助将不胜感激!

当我发出POST请求以创建新的定期任务时,我收到以下消息:"无法解析日期或cron表达式"。

不幸的是,我在尝试的每个cron语句中都得到了这条消息,甚至是他们示例中使用的语句。更糟糕的是,他们在网站上列出的API端点与他们在API文档中列出的不同,#34; / events / cron / url" vs" / events / when / cron / url"。

我尝试过的一些cron声明:

  • 0 12 * * * *
  • 0 0 12 1/1 *? *
  • 15 * * * * *

我使用的代码和cron语法类似于他们在网站上使用的语法,但为了以防万一,我将在此处发布。对于它的单一任务"它是值得的。端点按预期工作。希望我只是做些傻事......

链接: http://www.temporize.net; http://docs.temporize.apiary.io

require 'rubygems'
require 'httparty'
require 'cgi'
require 'time'

class Temporize
  include HTTParty
  base_uri "https://api.temporize.net/v1"
  attr_accessor :credentials

  def initialize
    uri = URI(ENV["TEMPORIZE_URL"])
    self.credentials = {:username => uri.user, :password => uri.password}
  end

  # Schedule a test event to run right away
  def single(callback_url, date = Time.now.utc.iso8601)
    url = CGI::escape(callback_url)
    Temporize.post("/events/#{date}/#{url}", :basic_auth => self.credentials)
  end

  # Schedule a test event to run on a schedule
  def recurring(callback_url, cron_schedule)
    cron = CGI::escape(cron_schedule) # ex "5 10 * * ?"
    url = CGI::escape(callback_url)
    Temporize.post("/events/#{cron}/#{url}", :basic_auth => self.credentials)
  end
end

t = Temporize.new
t.recurring("http://example.com/callback", "0 12 * * * *")
# => Result: failed to parse either date or cron expression

1 个答案:

答案 0 :(得分:0)

根据docs,cron语法,语法为:

<minutes> <hours> <day of month> <month> <day of week>

您的所有示例都有6个字段,而不是5.仔细检查以确保您的cron语法有5个以空格分隔的字段。

相关问题