小编Ala*_*ody的帖子

RabbitMQ主题交换:1个交换对多个交换

我有一个场景,我需要执行一系列过程,每个步骤都在独立的应用程序中完成和缩放.我正在为所有交易所使用主题交换.当前拓扑结构如下:

P - > X - > Q - > C/P - > X - > Q - > C.

我们正在"版本化"我们的队列以处理影响消息结构的可能的需求变化.绑定可能看起来像这样:

step1.exchange绑定到带有绑定键step1.v1的step1.v1.queue

step1.exchange绑定到带有绑定键step1.v2的step1.v2.queue

还有其他与版本无关的绑定模式也使得主题交换成为合适的选择.但是,我们只能使用一个交换来完成同样的事情.

TLDR:当您的用例可以以任何方式工作时,使用多个主题交换而不是一个主题交换是否有益处?

amqp rabbitmq

16
推荐指数
2
解决办法
9792
查看次数

需要建议:这是一个'NoSQL'数据库的好用例吗?如果是这样,哪一个?

我最近一直在研究NoSql选项.我的方案如下:

我们从世界各地的远程位置收集和存储来自定制硬件的数据.我们每15分钟记录一次每个站点的数据.我们最终希望每1分钟一次.每条记录有20到200个测量值.设置硬件记录并每次报告相同的测量值.

我们面临的最大问题是我们从每个项目中获得一组不同的测量结果.我们测量大约50-100种不同的测量类型,但是任何项目都可以具有任何数量的每种类型的测量.没有可以容纳数据的预设列集.因此,我们在系统上设置和配置项目时,使用所需的确切列创建和构建每个项目数据表.

我们提供工具来帮助分析数据.这通常包括更多计算和数据聚合,其中一些我们也存储.

我们目前正在使用一个mysql数据库,每个客户端都有一个表.表之间没有关系.

NoSql看起来很有希望,因为我们可以存储一个project_id,时间戳,然后其余部分不会被预设.这意味着一个表,数据中的更多关系,但仍然处理各种测量.

'NoSql'解决方案适合这项工作吗?如果是这样的?

我一直在调查MongoDB,看起来很有希望......

澄清示例:

项目1记录了5个数据点,mysql表列如下:时间戳,温度,风速,降水,辐照度,风向

项目2有3个数据点记录mysql表列:timestamp,temp,irradiance,temp2

ruby database ruby-on-rails nosql

10
推荐指数
1
解决办法
729
查看次数

使用RVM和GVim(Cream):找不到rvm命令

我正在尝试转移到GVim(奶油)作为我在Ubuntu上的主编.我正在使用精彩的rails.vim,但我也在使用RVM.

Rvm在shell中执行时工作正常,而我想在rails.vim中使用的ruby版本是默认设置的版本(但不是系统版本).

当我尝试运行类似的东西时

:Rgenerate migration migration_name
Run Code Online (Sandbox Code Playgroud)

我明白了:

...
Missing Rails 2.3.8 gem.
...
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

:!rvm use default
Run Code Online (Sandbox Code Playgroud)

我明白了:

/bin/bash: rvm: command not found
Run Code Online (Sandbox Code Playgroud)

显然,cream/gvim没有使用我的.bashrc.我该怎么做才能解决这个问题并让它发挥作用?谢谢.

vim bash ubuntu ruby-on-rails rvm

6
推荐指数
1
解决办法
2551
查看次数

有多少课程太多了?Rails STI

我正在研究一个非常大的Rails应用程序.我们最初并没有使用太多的继承,但是我们从顾问那里获得了一些开眼界的经验,并且正在寻求重构我们的一些模型.

我们的应用程序中有很多以下模式:

class Project < ActiveRecord::Base
  has_many :graph_settings
end

class GraphType < ActiveRecord::Base
  has_many :graph_settings
  #graph type specific settings (units, labels, etc) stored in DB and very infrequently updated.
end

class GraphSetting < ActiveRecord::Base
  belongs_to :graph_type
  belongs_to :project
  # Project implementation of graph type specific settings (y_min, y_max) also stored in db.
end
Run Code Online (Sandbox Code Playgroud)

这也导致视图,帮助器和GraphSetting模型本身中的大量条件.这些都不好.

一个简单的重构,我们摆脱GraphType,支持使用更像这样的结构:

class Graph < ActiveRecord::Base
  belongs_to :project
  # Generic methods and settings
end

class SpecificGraph < Graph
  # Default methods and settings hard coded
  # Project …
Run Code Online (Sandbox Code Playgroud)

ruby inheritance ruby-on-rails single-table-inheritance sti

5
推荐指数
1
解决办法
1191
查看次数

使用Cucumber测试Highcharts(JS图表库)

我有一个应用程序,我们帮助客户通过highcharts呈现的图形可视化数据.数据处理和可视化是我们的应用程序提供的主要价值,换句话说,它是重要的,应该进行测试.

我使用黄瓜为应用程序编写集成测试,我想包括我们的highcharts实现的一些基本测试.我特别热衷于测试正在绘制的数据以及自定义ajax交互是否正常工作.示例功能可能如下所示:

Feature: Plot Related Alarm Data
  As an project owner
  I want to see antecedent data plotted around the time of the alarm
  So that I can diagnose the issue and save gobs of money.

  Background:
    Given a bunch of stuff is set up
    And I am logged in
    # ...

  Scenario: Alarm data is plotted
    Given I have an alarm
    # ...
    When I visit the alarm show page
    Then I should see 5 days of …
Run Code Online (Sandbox Code Playgroud)

javascript ruby ruby-on-rails cucumber highcharts

5
推荐指数
1
解决办法
2294
查看次数