【问题标题】:dashing rufus scheduler updating two different valuesdashing rufus 调度程序更新两个不同的值
【发布时间】:2015-08-21 04:45:52
【问题描述】:

我正在使用 dashing 显示从 Jira 错误跟踪系统获取的一些信息。

使用插件:https://gist.github.com/christiangalsterer/1b24f2b42aa39ba63a92

我有一个 ruby​​ 脚本,它根据过滤器获取列表中每个过滤器的 Jira 问题数。然后将其推送到 3 个数字小部件,每个小部件显示不同的过滤器。

require 'jira'

last_issues = Hash.new(6)

JIRA_FILTERS.each do |filter_data_id, filter|
    SCHEDULER.every '5s', :first_in => 0 do |job|
    last_number_issues = last_issues['filter_data_id']
    client = JIRA::Client.new(JIRA_OPTIONS)
    current_number_issues = client.Issue.jql("filter in (\"#     {filter[:filter]}\")").size
    last_issues['filter_data_id'] = current_number_issues
    send_event(filter_data_id, { current: current_number_issues, last: last_issues['filter_data_id']})
    end
end

我遇到的问题是我希望每 2 小时安排一次获取“last_number_issues”的部分,但其余部分每 10 分钟安排一次,这样我就可以计算出该数字在那 2 小时内是上升还是下降时间框架。

有什么想法吗?

【问题讨论】:

  • 您可以有一个“每 2 小时”计划和“每 10 分钟”计划。或者有一个单一的“每 10 分钟”时间表,当某个计时器超过 2 小时时,重置计时器并执行“每 2 小时”作业。
  • 我试了两次都无法正常使用
  • 如果你想要一个答案,你最好重新提出你的问题。

标签: ruby ruby-on-rails-3 jira dashing rufus-scheduler


【解决方案1】:

你可以像这样在你的工作中设置两个调度器

SCHEDULER.every '10m', :first_in => 0 do |job|
  # Your code here
end

SCHEDULER.every '2h', :first_in => 0 do |job|
  # Your code here
end

这样,您可以将“last_number_issues”的逻辑分离到自己的时间表中。

【讨论】:

  • 我确实试过这个,但无法让它工作。因为我每次都在解析所有过滤器,所以我最终得到的所有最后更新的值对于每个过滤器都是相同的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 2012-05-25
  • 2021-04-29
  • 1970-01-01
  • 2011-01-13
相关资源
最近更新 更多