`

Module方法调用好不好

阅读更多
以前说,用module给class加singleton方法,和extend到类include到类的instance
现在看看这个

module Prober
  def probe_invoke(type, data = {})
    p = Probe.new({:probe_type => type.to_s,
        :data => data.to_json, :probe_status => 0, :retries => 0})
    p.save
  end
end




掉的时候
require 'prober'
include Prober
probe_invoke("send_sms", sms_text)


module Prober
  def Prober.probe_invoke(type, data = {})
    p = Probe.new({:probe_type => type.to_s,
        :data => data.to_json, :probe_status => 0, :retries => 0})
    p.save
  end
end

Prober.probe_invoke("send_sms", sms_text)



module Prober

  class << self

    def probe_invoke(type, data = {})
      p = Probe.new({:probe_type => type.to_s,
          :data => data.to_json, :probe_status => 0, :retries => 0})
      p.save
    end

    # more module instance methods ...

  end

end

分享到:
评论

相关推荐

    Struts2 动态方法调用(十三)

    在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...

    c#调用Python源码,No module named xx解决方案

    本主题聚焦于"C#调用Python源码"的问题,特别是解决"No module named xx"这类Python导入模块错误的策略。 首先,我们要理解"No module named xx"这个错误意味着Python在尝试执行代码时找不到特定的模块。这可能是...

    小程序 wxml里调用方法的用法及实践用法

    本教程将深入探讨如何在WXML中调用方法并进行实践应用。 一、WXML与WXS简介 1. WXML:它是小程序的视图层语言,负责定义页面布局和组件。由于WXML与JavaScript逻辑分离,不能直接执行JavaScript代码,因此需要通过...

    BusApplicationDemo:实现module之间的方法调用

    这个module下一般存放一些工具类或封装好的一些组件,是整个工程的核心module。如果没有这个module,那每个module需要的工具类或者组件,都需要写一遍,不利于项目后续的扩展性。 【3】module1,module2,module3......

    Verilog子模块调用教程

    Verilog是一种用于电子系统的硬件描述语言(HDL),它允许设计师通过文本描述来设计电路。...一个好的设计习惯是编写清晰、模块化的代码,并且通过模块化的方式来构建电路,以提高设计的可维护性和可复用性。

    防止恶意LKM修改Linux系统调用的方法研究.pdf

    防止恶意LKM修改Linux系统调用的方法研究 本文研究的主要目的是防止恶意LKM(Loaded Kernel Module)修改Linux系统调用,以确保Linux操作系统的安全。恶意LKM可以修改Linux系统调用,从而改变Linux操作系统的行为。...

    LabVIEW 调用 Python的三种方法_labview调用python_LabviewPython_lookrj7_wor

    当需要在LabVIEW中利用Python的丰富功能时,通常有以下三种方法来实现LabVIEW调用Python: 1. **通过脚本执行器(Script Executor)** LabVIEW提供了一个名为“Script Executor”的VIs(Virtual Instruments),...

    android studio删除module方法

    在Android Studio中,删除一个Module是一项需要细心操作的过程,尤其是当你的项目已经集成了版本控制系统如CVS时,步骤会稍微复杂一些。以下是一个详细的步骤指南来帮助你正确地删除名为"ttttest"的Module。 首先,...

    nodejs入门教程三:调用内部和外部方法示例.docx

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者可以在服务器端使用JavaScript进行编程。...总的来说,理解并熟练运用模块间的交互以及方法调用,是成为Node.js开发者的关键步骤。

    C++调用Python3函数与类的实例代码

    - 调用类的方法,需要获取方法对象,再调用`PyObject_CallObject()`。例如,如果方法名为`my_method`: ```cpp PyObject* method = PyObject_GetAttrString(instance, "my_method"); PyObject* result = ...

    destoon 各模块调用方法

    Destoon 模块调用方法 Destoon 是一个功能强大的内容管理系统,通过调用不同的模块,可以实现在不同的页面和位置灵活地调用和修改内容。本文将详细介绍 Destoon 各个模块的调用方法,包括首页公告栏、行情速递、...

    解决pyCharm中 module 调用失败的问题

    ### 解决pyCharm中module调用失败的问题 在Python开发过程中,经常使用PyCharm作为集成开发环境(IDE)。然而,在使用过程中可能会遇到module调用失败的问题,这不仅会降低开发效率,还可能导致项目延期。本文将...

    js代码-完成函数 createModule,调用之后满足如下要求: 1、返回一个对象 2、对象的 greeting 属性值等于 str1, name 属性值等于 str2 3、对象存在一个 sayIt 方法,该方法返回的字符串为 greeting属性值 + ', ' + name属性值

    在`sayIt`方法中,`this`关键字指向调用该方法的对象,即`createModule`函数返回的对象。所以`this.greeting`和`this.name`分别引用的是`greeting`和`name`属性的值。 5. **调用函数**: 调用`createModule`函数...

    uniapp调用原生Android SDK

    总结,uniapp调用原生Android和iOS SDK的关键在于理解跨平台框架与原生系统的交互机制,正确配置项目依赖,封装原生方法,并在JavaScript中通过uniapp提供的接口调用这些方法。这样,开发者就可以充分利用原生SDK的...

    Android Studio 多层级 Module 对 aar 引用问题解决方法

    问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生错误,Module B找不到aar文件。(同时如果又有Module C 依赖了Module B,C也会出同样的问题) 解法: 1、正常给一个...

    Android 调用so包的方法

    在运行或调试时,Java层就可以通过`native`方法调用.so库中的函数了。 除了基本的JNI调用,还有一些高级主题,如JNI类型的映射、异常处理、线程安全和性能优化。例如,JNI转换Java对象为C数据类型时,需要使用`env-...

    python 同级目录下的模块间的调用方法以及代码

    在`module1.py`中,若要调用`module2.py`中的函数`my_function`,可以写成: ```python from .module2 import my_function my_function() ``` 注意,由于我们是在同级目录下导入,所以需要在`from`后面加上...

    android 自定义so库使用与方法调用demo

    本教程将详细介绍如何创建并使用自定义的SO(共享对象)库,并通过一个名为TestDemo的示例进行方法调用。 首先,理解SO库在Android中的作用。SO库是Linux系统中的动态链接库,相当于Windows下的DLL文件。在Android...

    node.js module

    总之,Node.js 模块系统是构建复杂应用程序的关键组成部分,通过有效的模块化,开发者可以更好地组织代码、提高代码复用性,并降低维护成本。理解并熟练运用 `require()`、`module.exports`、`exports` 以及 `npm` ...

Global site tag (gtag.js) - Google Analytics