我有一个场景,我需要执行一系列过程,每个步骤都在独立的应用程序中完成和缩放.我正在为所有交易所使用主题交换.当前拓扑结构如下:
P - > X - > Q - > C/P - > X - > Q - > C.
我们正在"版本化"我们的队列以处理影响消息结构的可能的需求变化.绑定可能看起来像这样:
step1.exchange绑定到带有绑定键step1.v1的step1.v1.queue
step1.exchange绑定到带有绑定键step1.v2的step1.v2.queue
还有其他与版本无关的绑定模式也使得主题交换成为合适的选择.但是,我们只能使用一个交换来完成同样的事情.
TLDR:当您的用例可以以任何方式工作时,使用多个主题交换而不是一个主题交换是否有益处?
我最近一直在研究NoSql选项.我的方案如下:
我们从世界各地的远程位置收集和存储来自定制硬件的数据.我们每15分钟记录一次每个站点的数据.我们最终希望每1分钟一次.每条记录有20到200个测量值.设置硬件记录并每次报告相同的测量值.
我们面临的最大问题是我们从每个项目中获得一组不同的测量结果.我们测量大约50-100种不同的测量类型,但是任何项目都可以具有任何数量的每种类型的测量.没有可以容纳数据的预设列集.因此,我们在系统上设置和配置项目时,使用所需的确切列创建和构建每个项目数据表.
我们提供工具来帮助分析数据.这通常包括更多计算和数据聚合,其中一些我们也存储.
我们目前正在使用一个mysql数据库,每个客户端都有一个表.表之间没有关系.
NoSql看起来很有希望,因为我们可以存储一个project_id,时间戳,然后其余部分不会被预设.这意味着一个表,数据中的更多关系,但仍然处理各种测量.
'NoSql'解决方案适合这项工作吗?如果是这样的?
我一直在调查MongoDB,看起来很有希望......
澄清示例:
项目1记录了5个数据点,mysql表列如下:时间戳,温度,风速,降水,辐照度,风向
项目2有3个数据点记录mysql表列:timestamp,temp,irradiance,temp2
我正在尝试转移到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.我该怎么做才能解决这个问题并让它发挥作用?谢谢.
我正在研究一个非常大的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) 我有一个应用程序,我们帮助客户通过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) ruby ×3
amqp ×1
bash ×1
cucumber ×1
database ×1
highcharts ×1
inheritance ×1
javascript ×1
nosql ×1
rabbitmq ×1
rvm ×1
sti ×1
ubuntu ×1
vim ×1