加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Sinatra全局应用程序变量

发布时间:2020-12-17 02:43:53 所属栏目:百科 来源:网络整理
导读:我有一个简单的Sinatra应用程序,我想在所有会话和请求中共享变量. configure do @@click_count = 0enddef send_message(text) # ignore,this part worksendpost '/click' do @@click_count = @@click_count + 1 send_message "clicks: #{@@click_count}"end
我有一个简单的Sinatra应用程序,我想在所有会话和请求中共享变量.

configure do
  @@click_count = 0
end

def send_message(text)
  # ignore,this part works
end

post '/click' do
  @@click_count = @@click_count + 1
  send_message "clicks: #{@@click_count}"
end

发送的消息始终是点击:1而不是递增.我也尝试过set:click_count,0然后是settings.click_count = settings.click_count 1但是我仍然得到同样的东西.

我正在使用shotgun使用shotgun web.rb -p 4567 -E生产本地运行服务器,因为在非生产环境中提到的另一个问题是服务器在每个丢失状态的请求上重新启动.

任何想法如何让这个工作?

解决方法

Sinatra本身不会在开发模式( it used to)中的每个请求上重新启动,但 shotgun具有以下效果:

Each time a request is received,it forks,loads the application in
the child process,processes the request,and exits the child process.

简单地使用ruby web.rb,一切都应该有效(模块化线程问题,你发表评论它看起来像你知道).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读