小编Pro*_*kov的帖子

无法让机架在轨道应用中工作

我想在我的rails应用程序中实现CORS,所以我用Google搜索了rack-cors gem.我按照README中的说法做了一切,相应地更新了Gemfile并更新application.rb如下:

module YourApp
  class Application < Rails::Application

    # ...

    config.middleware.use Rack::Cors do
      allow do
        origins '*'
        resource '*', :headers => :any, :methods => [:get, :post, :options]
      end
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

但它没有用.不管我做了什么,在浏览器控制台中我不断收到消息:
XMLHttpRequest cannot load https://somewebsite.com. Origin http://0.0.0.0:3000 is not allowed by Access-Control-Allow-Origin.

看完这个博客帖子问题在github上,我意识到,机架CORS中间件在中间件堆栈事项可能位置.所以我按照github问题的说法做了:

module YourApp
  class Application < Rails::Application

    # ...

    config.middleware.insert 0, Rack::Cors do
      allow do
        origins '*'
        resource '*', :headers => :any, :methods => [:get, :post, :options]
      end
    end

  end …
Run Code Online (Sandbox Code Playgroud)

ruby rack ruby-on-rails cors

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

ThreadPool.SetMinThreads 不创建任何新线程

我试图弄清楚到底会ThreadPool.SetMinThreads产生什么影响。

根据官方文件

设置在切换到管理线程创建和销毁的算法之前,当发出新请求时,线程池按需创建的最小线程数。

根据我的理解,作为一名开发人员,我应该能够控制如何按需旋转新线程的机制,因此它们会被创建并在空闲状态下等待,例如在我期望收到请求负载的情况下在特定时间。

这正是我最初认为SetMinThreads方法的设计目的。

但当我开始实际使用它时 - 我得到了非常奇怪的结果。

所以我有我的 ASP.NET .NET5 应用程序,并且在控制器操作中我有如下代码: ThreadPool.SetMinThreads(32000, 1000);

当然,我直觉地期望运行时为我创建 32K 工作线程和 1000 个 io 线程。

当我这样做,然后调用其他方法 - Process.GetCurrentProcess().Threads获取所有进程的线程,并打印它们的统计信息,我得到这样的东西

Standby - 17
Running - 4
Run Code Online (Sandbox Code Playgroud)

我认为应用程序可能需要一些时间来旋转新线程,所以我尝试了不同的延迟,1 分钟、5 分钟和 10 分钟。

但结果总是保持不变,我得到15-20 Standby2-4 Running

那么接下来的逻辑问题是——SetMinThreads方法到底在做什么?MSDN提供的描述似乎没有太大帮助。

还有另一个逻辑问题 - 如果我想强制 dotnet 在空闲状态下旋转 32K 新线程怎么办 - dotnet 是否为此提供了任何机制?

.net c# multithreading threadpool .net-5

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

标签 统计

.net ×1

.net-5 ×1

c# ×1

cors ×1

multithreading ×1

rack ×1

ruby ×1

ruby-on-rails ×1

threadpool ×1