- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
尝试从 Rufus Schedulers 中发送事件会导致此错误:
{ 70231586340180 rufus-scheduler intercepted an error:
70231586340180 job:
70231586340180 Rufus::Scheduler::IntervalJob "2s" {}
70231586340180 error:
70231586340180 70231586340180
70231586340180 NameError
70231586340180 undefined local variable or method `connections' for main:Object
70231586340180 picture-frame.rb:31:in `send_event'
70231586340180 picture-frame.rb:24:in `block in <main>'
...
我似乎无法从 Rufus Job 中访问 connections
。我怎样才能解决这个问题?这是我的代码:
require 'sinatra'
require 'rufus-scheduler'
require 'json'
set :server, :thin
connections = []
scheduler = Rufus::Scheduler.new
get '/' do
erb :index
end
get '/events', provides: 'text/event-stream' do
stream :keep_open do |out|
connections << out
connections.reject!(&:closed?)
end
end
scheduler.interval '2s' do
random = (0...8).map { (65 + rand(26)).chr }.join
send_event('random', { random: random })
end
def send_event(id, body)
body[:id] = id
event = "data: #{body.to_json}"
connections.each { |out| out << event }
end
最佳答案
这是一个带有全局变量的版本。
How do I put connections in the context of my Sinatra application?
抱歉,有了这个 $connections
和 $scheduler
它就在整个 Ruby 进程的上下文中,但是对于有限的脚本/服务来说,没关系。
require 'sinatra'
require 'rufus-scheduler'
require 'json'
set :server, :thin
$connections = []
$scheduler = Rufus::Scheduler.new
get '/' do
erb :index
end
get '/events', provides: 'text/event-stream' do
stream :keep_open do |out|
$connections << out
$connections.reject!(&:closed?)
end
end
def send_event(id, body)
body[:id] = id
event = "data: #{body.to_json}"
$connections.each { |out| out << event }
end
$scheduler.interval '2s' do
random = (0...8).map { (65 + rand(26)).chr }.join
send_event('random', { random: random })
end
关于ruby - Rufus Scheduler 触发的 Sinatra 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43476509/
我正在使用 Ruby on Rails 5.2.0 开发一个系统,我需要每 2 分钟运行一次作业。我使用 sidekiq 进行后台处理,使用 sidekiq-cron 来安排作业。 我在 Rails
我的 rails 应用程序在初始化程序中使用 rufus-scheduler 启动一个进程。这是初始化程序代码的精简版本: # config.logger isn't available here,
我正在 redmine 中开发一个插件如何每天发送邮件,所以我安装了 rufus-scheduler在我的 Gemfile 中添加这一行 gem "rufus-scheduler " 我还安装了 ge
我有一个在 nginx 和 passenger 下运行的 Rails 服务器。我的 sheduler.rb 看起来像这样 require 'rufus-scheduler' my_awesome_jo
我很清楚为什么会发生这种情况(两个 ruby 运行时),对于那些之前没有阅读 RS FAQ 或搜索过 SO 的人来说这是一个常见问题,但我花了几天时间尝试许多规定的解决方案,但我的 rufus-s
我每天使用 rufus-scheduler 从 Rails 服务器运行一个进程。出于测试目的,假设每 5 分钟一次。我的代码如下所示: 在 config/initializers/task_sched
我在 heroku 上运行了一个 Rails 应用程序,并添加了 Rufus Scheduler。 调度程序中的“一天一次”任务比一天运行的频率更高。 我的猜测与白天在不同 dynos 上运行的 he
我用 Rufus-Scheduler DaemonKit 守护了一个 Ruby 调度程序脚本(使用 Rufus),我试图捕获 TERM 或 INT 信号,让应用程序在退出前尝试保存状态。 Daemon
我想在运行查询之前确定对 Tokyo Cabinet 表的查询将返回的记录数。我使用 rufus-tokyo Ruby gem 作为我的界面。执行此操作的最佳方法是什么? 最佳答案 仔细查看githu
我使用 Ruby 中的 Rufus-scheduler 从一个简单的 Controller Action 中安排了一个作业。稍后我想调用另一个 Action ,在该 Action 中我将取消安排直到那
我在 Sinatra 应用程序中使用 Rufus 调度程序。我可以从“scheduler do” block 中访问辅助方法吗?我没有设法做到这一点(我得到一个“undefined method `c
我有一个计划任务,它使用 rufus 调度程序每 1 分钟运行一次。它的执行没有问题。但是当我尝试运行 rspec 时,该任务作为它的一部分运行并且不会让 rspec 完成。如何阻止它被选为规范的一部
嗯。我正在尝试用 ruby 编写简单的调度程序,只是一个简单的脚本,一旦启动就会为 ex。分钟做我想做的事。 我一直在使用 rufus-scheduler 和 Ruby On Rails,但这次我
虽然我不想排除我可能遗漏了一些非常愚蠢的东西,但我确实尝试阅读了我能找到的关于这个主题的所有内容,所以这是我的问题: 我正在尝试在我的 redmine (2.6) 安装中运行 rufus-schedu
尝试从 Rufus Schedulers 中发送事件会导致此错误: { 70231586340180 rufus-scheduler intercepted an error: 702315863
我们正在考虑在 Ruby on Rails 项目上使用 rufus-scheduler gem 来定期监控通信队列。有没有人有在 Rails 项目中使用这个 gem 的经验?有人对替代调度程序有强烈的
我正在尝试使用 rake 和 rufus ,这两个我都是新手。我想让 Rufus 调用我的 rake 任务,但我收到以下错误。 不知道如何构建任务 'inbox:process_inbox' lib/
https://github.com/jmettraux/rufus-scheduler指出: rufus-scheduler is a Ruby gem for scheduling pieces
我有一个在生产环境中使用 apache + passenger 运行的应用程序。目前,我在初始化程序中初始化 rufus 调度程序,并在该初始化程序中注册从数据库读取的作业。 apache/passe
计划正在运行,但错误“未定义的方法'do_something'”。什么是不对的? 使用 rails 3。 在 config/initializers/task_scheduler.rb 中: requ
我是一名优秀的程序员,十分优秀!