标签: channels

将通道的所有元素都消耗到切片中

如何从通道消耗的所有元素中构造切片(如Python的list那样)?我可以使用这个辅助函数:

func ToSlice(c chan int) []int {
    s := make([]int, 0)
    for i := range c {
        s = append(s, i)
    }
    return s
}
Run Code Online (Sandbox Code Playgroud)

但由于缺乏泛型,我不得不为每种类型写出来,不是吗?是否有内置函数来实现这一点?如果没有,我怎么能避免为我正在使用的每一种类型复制和粘贴上面的代码?

go channels

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

在Golang中同时从多个频道读取

我是Golang的新手.现在我想弄清楚如何在Golang中建立一对一的通道,其设置如下:

说我有两个goroutine numgen1和numgen2同时执行并将数字写入通道num1 resp.NUM2.我想在新进程addnum中添加从numgen1和numgen2发送的数字.我尝试过这样的事情:

func addnum(num1, num2, sum chan int) {
    done := make(chan bool)
    go func() {
        n1 := <- num1
        done <- true
    }()
        n2 := <- num2
        <- done
    sum <- n1 + n2
}
Run Code Online (Sandbox Code Playgroud)

但这似乎很不正确.有人可以给我一些想法吗?

非常感谢您的帮助.

concurrency go channels

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

.NET Remoting切换频道本身

我们在使用.NET Remoting时遇到了一个奇怪的问题.基本上,我们有一个服务器,它注册两个TcpChannels ChannelServices.RegisterChannel():

  1. 一个人听端口50000
  2. 其他人在端口15000上侦听.

然后我们有一个客户端注册一个TcpChannel,以便能够与服务器通信.我们通过Activator.GetObject()使用URI 调用从服务器检索一个对象

"TCP:// SERVERIP:50000 /对象名"

这工作正常,客户端连接到端口50000上的服务器并获取对象.

但是,当我们开始调用该对象上的方法时,将丢弃与端口50000上的通道的连接,并自动在端口15000上建立与该通道的新连接.这对我们来说是一个真正的问题,因为我们不希望端口15000上的流量,因为该通道可能没有绑定到与服务器上的端口50000通道相同的网络适配器,或者该端口可能未在防火墙中打开,这会导致远程召唤自然失败.

这对我们来说非常奇怪,因为客户端在我们的代码中不知道端口15000上的服务器上存在另一个通道或它侦听的IP,但它尝试连接到它.

非常感谢任何帮助,

谢谢,卡斯帕

这是设置其中一个服务器通道的代码,通常在端口50000上:

IDictionary props = new Hashtable();

props["port"] = m_tcpPort;
props["name"] = String.Empty;


BinaryServerFormatterSinkProvider serverProvider = new BinaryServerFormatterSinkProvider();
serverProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;

BinaryClientFormatterSinkProvider clientProvider = new BinaryClientFormatterSinkProvider();

m_tcpChannel = new TcpServerChannel( props, /*clientProvider,*/ serverProvider );
ChannelServices.RegisterChannel( m_tcpChannel, false );

m_wellKnownObjRef = RemotingServices.Marshal( this, "Server@" + m_tcpPort.ToString() );
Run Code Online (Sandbox Code Playgroud)

这是设置其他服务器通道的代码,通常在端口15000上:

IDictionary props = new Hashtable();

props["name"] = String.Empty;
props["port"] = ip.Port;
props["bindTo"] = ip.Address.ToString();                    
props["timeout"] = …
Run Code Online (Sandbox Code Playgroud)

.net c# remoting channels

8
推荐指数
1
解决办法
4215
查看次数

如何明确清空频道?

简短的版本:有没有办法清空go通道而不重新创建它,或循环通过它?

原因是:我使用两个通道来发送和接收数据,我还有一个额外的通道来表示需要重新连接.

现在,当传输重置/重新连接时,我想"清空"额外的通道,以确保没有任何延迟的其他重置请求,这将导致该事件再次重新连接.

go channels

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

从频道读取还是超时?

使用Rust 1.9,我想读取mpsc::channel 超时.是否有明确的习惯使这项工作?我已经看到了描述的不稳定方法,mpsc::Select但是这个Github讨论表明它不是一种强有力的方法.是否有更好的推荐方式来实现接收或超时语义?

multithreading channels rust

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

Golang频道选择声明

刚试试去吧.我想知道如果你有一个select语句等待几个频道上的通信,并且一条消息在两个或多个频道上同时出现,会发生什么.如果所有消息同时出现,select将如何确定接受哪个频道?

谢谢!

concurrency go channels

7
推荐指数
1
解决办法
2986
查看次数

我可以使用Django Channels实时显示MQTT消息吗?

我的目标是设置Django应用程序,从代理检索MQTT消息.(例如,使用Paho MQTT Client).

在我看来,异步提取传入消息将非常适合新的Django频道.因为这将提供事件驱动的设置.

我的问题是:Django Channels确实可以成为桥接MQTT消息的工具吗?如果是这样的话:我怎么能设置它?

python django channels mqtt django-channels

7
推荐指数
1
解决办法
4071
查看次数

Django/Heroku:致命:角色的连接太多了

所以我刚刚通过Heroku(Hobby)和Postgres(试用版)推出了Channels 2.0 Daphne 2.2.0和asgi的网站.当我启动我的网站时,我点击了几页,我得到500错误.我通过电子邮件发送的错误消息是FATAL: too many connections for role ..."

当我运行heroku pg:killall或等待足够长时间时,我可以再点击几次,直到错误消息重复.但是,当我运行heroku pg它时显示Connections 0/20.有谁知道发生了什么以及如何阻止错误?有可能我有两个很多连接打开一秒钟,但它似乎不是这样.

File "/app/.heroku/python/lib/python3.6/site-

packages/django/contrib/sessions/backends/base.py" in _get_session
  191.             return self._session_cache

During handling of the above exception ('SessionStore' object has no attribute '_session_cache'), another exception occurred:

File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/base/base.py" in ensure_connection
  216.                 self.connect()

File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/base/base.py" in connect
  194.         self.connection = self.get_new_connection(conn_params)

File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/postgresql/base.py" in get_new_connection
  168.         connection = Database.connect(**conn_params)

File "/app/.heroku/python/lib/python3.6/site-packages/psycopg2/__init__.py" in connect
  130.     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)

The above exception (FATAL: …
Run Code Online (Sandbox Code Playgroud)

django heroku channels django-channels

7
推荐指数
1
解决办法
637
查看次数

django 通道配置不当:在 ASGI_APPLICATION 模块中找不到“应用程序”

我正在用 Django 设置频道 asgi。我曾尝试升级 Django 和 Channels。

"Cannot find %r in ASGI_APPLICATION module %s" % (name, path)
django.core.exceptions.ImproperlyConfigured: Cannot find 'app' in ASGI_APPLICATION module <MyApp>.routing
Run Code Online (Sandbox Code Playgroud)

我的路由配置按照 mysite/routing 中的教程

application = ProtocolTypeRouter({
# (http->django views is added by default)
'websocket': AuthMiddlewareStack(
    URLRouter(
        chat.routing.websocket_urlpatterns
    )
  ),
})
Run Code Online (Sandbox Code Playgroud)

和应该只是简单的导入语句

import chat.routing
Run Code Online (Sandbox Code Playgroud)

我的目录结构也完全按照教程

与设置配置

INSTALLED_APPS = [
'channels',
'chat',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Run Code Online (Sandbox Code Playgroud)

ASGI_APPLICATION = 'chat.routing.application'
Run Code Online (Sandbox Code Playgroud)

谢谢

python django redis channels

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

过滤器如何在 CNN 的第一层中穿过 RGB 图像?

我正在看这个图层的打印输出。我意识到,这显示了输入/输出,但与如何处理 RGB 通道无关。

在此处输入图片说明

如果您查看 block1_conv1,它会显示“Conv2D”。但是如果输入是 224 x 224 x 3,那么这不是 2D。

我的更大、更广泛的问题是,在整个训练这样的模型的过程中如何处理 3 个通道输入(我认为它是 VGG16)。RGB 通道是否在某个时刻组合(相加或连接)?何时何地?为此需要一些独特的过滤器吗?或者模型是否从头到尾分别跨越不同的通道/颜色表示?

convolution neural-network channels conv-neural-network vgg-net

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