首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带有EventMachine模块的实例变量

带有EventMachine模块的实例变量
EN

Stack Overflow用户
提问于 2015-11-23 22:46:51
回答 2查看 183关注 0票数 1

我正在编写一个应用程序,它使用EventMachine从服务中中继命令。我希望重用到服务的连接(而不是为每个新请求重新创建它)。服务是从一个模块方法启动的,该模块被提供给EventMachine。如何在事件机方法中存储可重用的连接?

我所做的(简化):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require 'ruby-mpd'
module RB3Jay
  def self.start
    @mpd = MPD.new
    @mpd.connect
    EventMachine.run{ EventMachine.start_server '127.0.0.1', 7331, self }
  end
  def receive_data
    # I need to access @mpd here
  end
end

到目前为止,我唯一的想法是使用@@class_variable,但我之所以考虑这样的黑客攻击,是因为我不习惯EventMachine,也不知道更好的模式。如何重构代码,使@mpd实例在请求期间可用?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-24 13:01:40

您可以继承EM::Connection并通过EventMachine.start_server传递mpd,而不是使用模块方法,后者将把它传递给类的initialize方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require 'ruby-mpd'
require 'eventmachine'

class RB3Jay < EM::Connection
  def initialize(mpd)
    @mpd = mpd
  end

  def receive_data
    # do stuff with @mpd
  end

  def self.start
    mpd = MPD.new
    mpd.connect

    EventMachine.run do
      EventMachine.start_server("127.0.0.1", 7331, RB3Jay, mpd)
    end
  end
end

RB3Jay.start
票数 2
EN

Stack Overflow用户

发布于 2015-11-24 12:35:33

我相信这可能是一个单身学生的机会。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require 'ruby-mpd'
require 'singleton'

class Mdp
  include Singleton
  attr_reader :mpd

  def start_mpd
    @mpd = MPD.new
    @mpd.connect
  end
end

module RB3Jay
  def self.start
    Mdp.instance.start_mdp
    EventMachine.run{ EventMachine.start_server '127.0.0.1', 7331, self }
  end
end

class Klass
  extend RB3Jay

  def receive_data
    Mdp.instance.mpd
  end
end

这个片段假设Klass.start将在创建Klass实例之前被调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33887113

复制
相关文章
ansible执行带有环境变量的脚本不生效
jenkins发布时,使用ansible执行远程主机上的启动tomcat脚本发现不生效,启动tomcat的脚本中有环境变量。
HaydenGuo
2019/12/12
2.9K0
ansible执行带有环境变量的脚本不生效
静态变量和实例变量的区别
静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。静态变量可以实现让多个对象共享内存。
唐怀瑟
2018/08/30
1.2K0
dart - 如何在带有DartFlutter的不同类上使用变量
我有一类是我的getToken类。在此类中,我得到的 token 是字符串 token 。这是我的 getToken.dart
徐建国
2021/08/03
2.6K0
Python类变量和实例变量区别
类变量:定义在类里面,通过类名或对象名引用,如果是通过对象名引用,会先找有没有这个同名的实例变量,如果没有,引用到的才是类变量,类变量的更新,只能通过类名,形如 类名.a = 55 ,不要指望通过实例引用类变量来更新类变量
王大力测试进阶之路
2019/10/25
1.5K0
OC知识--成员变量(属性,实例变量)的相关知识
本文首发于我的个人博客:『不羁阁』 https://bujige.net 文章链接:https://bujige.net/blog/iOS-Member-variable.html 1. 成员变量介绍 1. 成员变量解释 我们把Objective-C中写在类声明的大括号中的变量称之为成员变量(也称为属性,实例变量)。 举例: @interface Iphone : NSObject { // 成员变量声明 int _cpu; // cup 0 int _
程序员充电站
2018/05/31
2.6K0
Shell 变量引用实例
初学 Shell 编程时,对变量各种引用使用不太熟悉,走了很多弯路,本文记录变量引用的一些用法,希望对大家有所帮助。
叨叨软件测试
2020/04/14
2.2K0
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
https://www.cnblogs.com/poloyy/p/15178423.html
小菠萝测试笔记
2022/03/23
1.4K0
Python - 面向对象编程 - 类变量、实例变量/类属性、实例属性
【说站】python类变量和实例变量的对比
1、类变量是所有对象共有的,其中一个对象改变其价值,其他对象得到的是改变后的结果。
很酷的站长
2022/11/23
8290
【说站】python类变量和实例变量的对比
java中类变量和实例变量的实质区别
相对于static(静态的)或说类的, 本章开始提到的都是instance(实例的)或说对象的。 每个对象都有自己的一份儿对象域或实例域,相互之间没关系, 不共享。 我们可以从对象中访问实例变量。
马克java社区
2021/03/15
2K0
java中类变量和实例变量的实质区别
python email模块的使用实例
在使用python过程中,需要用的email模块来进行邮件的发送和接收,包含自定义邮件的中文、主题、日期、附件等信息,以下是我使用email模块来发送一个测试报告相关信息的邮件的例子:
py3study
2020/01/07
7660
python类成员变量和实例成员变量
print 'need %f hour(s)'% (distance/self.speed)
用户7886150
2020/12/20
1.4K0
Ansible常用模块实例
为了避免ansible每次下发指令都要输入目标主机密码,所以这里使用(ssh-keygen)在控制主机创建一对秘钥,使用(ssh-copy-id)来下发生成的公钥。
HaydenGuo
2019/12/12
1.1K0
Ansible常用模块实例
实例变量的懒初始化
今天遇到一个很有趣的问题,由于业务要求,需要懒初始化一个实例变量。 简单方法 很顺手就写出下面的代码。 public class LazyFieldInitializer { private Object obj = null; public LazyFieldInitializer(){ } public void someOp(){ if(obj == null){ obj = new Object(); }
jeremyxu
2018/05/10
2K0
Python: collections模块实例透析Collections模块
Collections模块 collections模块提供了一些python内置数据类型的扩展,比如OrderedDict,defaultdict,namedtuple,deque,counter等,简单实用,非常值得学习了解。 import collections 1. OrderedDict 顾名思义,有顺序的词典,次序不再是随机的。普通的dict不记录插入的顺序,遍历其值的时候是随机的,相反,OrderedDict记录插入的顺序,在迭代的时候可以看出差异。 遍历 print 'Regular dict
用户2183996
2018/06/21
7290
成员变量和局部变量的区别是什么_实例变量和成员变量的区别
大家好,又见面了,我是你们的朋友全栈君。 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在
全栈程序员站长
2022/11/17
8700
Python模块(使用模块中的函数、变量、了解pyc文件)
模块就好比是工具包,要想使用过这个工具包中的工具,就需要导入import这个模块。
python自学网
2022/05/23
2.5K0
Python模块(使用模块中的函数、变量、了解pyc文件)
Java 菜鸟入门 | Java中的静态变量、实例变量、局部变量和成员变量
学习 Java 的过程中,一开始很容易被这些各种变量绕晕,这篇博客主要介绍了这几种变量之间的关系和区别。
村雨遥
2022/11/30
1.5K0
深入理解python类的实例变量和类变量
a = aa()     #将a投入aa这个类中,进行实例化# print a.add()   #这个结果显然易见# #下边两条指令各起何作用?结果是输出两个 20 么?还是两个13?还是? aa.w = 20   
py3study
2020/01/09
1.4K0
简单的常量和变量的运算实例
本文旨在介绍 tensorflow 入门知识点及实战示例,希望各位新手能在学习之后熟练 tensorflow 相关操作
PHP开发工程师
2022/04/13
3600
点击加载更多

相似问题

带有EventMachine服务的任务

20

EventMachine Rails的多类实例

13

带有eventmachine的mongoid和mongomapper

23

如何使用带有实例索引的模块实例?

10

模块中的实例变量?

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文