小编Ner*_*rve的帖子

从goroutines捕获返回值

我是golang的新手,所以请原谅这是一个非常基本的问题.下面的代码给出了编译错误,说'意外去':

x := go doSomething(arg)

func doSomething(arg int) int{
    ...
    return my_int_value
}
Run Code Online (Sandbox Code Playgroud)

我知道,如果不正常调用函数,我可以获取返回值,而不使用goroutine.或者我可以使用频道等

我的问题是为什么不能从goroutine获取这样的返回值.

concurrency go goroutine

62
推荐指数
5
解决办法
5万
查看次数

goroutines如何在多核处理器上运行

我是Go语言的新手,所以如果我的问题非常基本,请原谅.我写了一个非常简单的代码:

func main(){
    var count int // Default 0

    cptr := &count

    go incr(cptr)

    time.Sleep(100)

    fmt.Println(*cptr)
}

// Increments the value of count through pointer var
func incr(cptr *int) {
    for i := 0; i < 1000; i++ {
            go func() {
                    fmt.Println(*cptr)
                    *cptr = *cptr + 1
            }()
      }
    }
Run Code Online (Sandbox Code Playgroud)

count的值应该增加一个循环运行的次数.考虑案例:

循环运行100次 - >计数值为100(循环运行100次时这是正确的).

循环运行> 510次 - >计数值为508或510.即使它是100000也会发生.

我在8核处理器机器上运行它.

parallel-processing go goroutine

13
推荐指数
2
解决办法
7536
查看次数

设计分布在引擎上的几个模型

我有一个rails应用程序,包括几个一次组合安装的引擎.应用程序的B2B端有一个引擎,我们有一个单独的"用户"模型(像公司一样)进行设计验证.同样,最终客户也有一个拥有自己的身份验证模型(例如:公司的用户).同样,还有另一个站点管理员引擎,它使用ActiveAdmin实现根级别管理.

我们可以在几种组合中同时安装一个,两个或三个引擎.问题是,我们每个都有不同的父应用程序控制器,每个都有不同的路由器.就像是:

devise.rb - engine1

config.router_name = :engine1
config.parent_controller = 'Engine1::ApplicationController'
Run Code Online (Sandbox Code Playgroud)

devise.rb - engine2

config.router_name = :engine2
config.parent_controller = 'Engine2::ApplicationController'
Run Code Online (Sandbox Code Playgroud)

但是,当然,我不能有多个冲突的配置文件.

我需要帮助我如何在设计上实现这样的东西.

ruby-on-rails rails-engines devise ruby-on-rails-3

9
推荐指数
1
解决办法
351
查看次数

Rails有时会花费太多时间来渲染

在我看来,我正在渲染一部分.这实际上是一个行元素,在表中显示大约500 - 600次.我渴望加载所有协会.但是,问题是,相同的部分需要一些突然不同的渲染时间.

我的rails服务器o/p:

Rendered admin/invoices/_update.html.erb (1330.3ms)
Rendered admin/invoices/_update.html.erb (4.8ms)
Rendered admin/invoices/_update.html.erb (4.8ms)
Rendered admin/invoices/_update.html.erb (8.8ms)
Rendered admin/invoices/_update.html.erb (4.4ms)
Rendered admin/invoices/_update.html.erb (1309.9ms)
Rendered admin/invoices/_update.html.erb (4.7ms)
Rendered admin/invoices/_update.html.erb (4.6ms)
Rendered admin/invoices/_update.html.erb (4.6ms)
Rendered admin/invoices/_update.html.erb (1322.6ms)
Rendered admin/invoices/_update.html.erb (4.2ms)
Run Code Online (Sandbox Code Playgroud)

此外,没有特定的行每次都需要更长的时间.

在我的视图文件中:

<% @updates.each do |update| %>
<%= render :partial => 'update', :locals => {:user => update[0]} #each of this is  a row %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

更新:还建议这是一个很好的方法吗?即:多次循环部分.我不能用分页和Ajax来固定东西.任何其他方法.?

renderpartial partial-views ruby-on-rails-3 ruby-on-rails-3.1

4
推荐指数
1
解决办法
2759
查看次数

Rails获取constantize模块

比方说,我在模块的命名空间下有一个类

Module::Klass
Run Code Online (Sandbox Code Playgroud)

我可以Klass从控制台访问它,它给了我:

Module::Klass
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用:

"klass".constantize # Calling constantize on String
Run Code Online (Sandbox Code Playgroud)

它出错,因为它没有附加模块命名空间.

所以,我的问题是:有没有办法根据当前上下文来限制字符串,以便我收到klass名称及其模块?

ruby ruby-on-rails ruby-on-rails-3

3
推荐指数
2
解决办法
4735
查看次数

Rails在application.rb之前的每个请求之前运行代码

我希望在每次请求之前在rails app中运行一段代码.此外,它应该在达到之前运行application_controller.rb.

我知道我们可以把这些东西放进去config/initializers或者application.rb.但是,我想在每个请求之前运行它.

ruby-on-rails ruby-on-rails-3

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