Fanout 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Fanout 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Fanout 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Fanout 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Fanout 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包
开发厂商
地区 国产
提 交 者 sunfmin
适用人群 未知
收录时间 2015-07-24

软件简介

Fanout 可以让编写平行代码更加容易。Fanout 的代码是可以重复使用的,所以你可以很容易地就写下平行代码,而不用担心 fatal error: all goroutines are asleep - deadlock!

示例代码:

for _, word := range domainWords {
    if strings.TrimSpace(word) == "" {
        continue
    }
    py := pinyin.Convert(word)
    pydowncase := strings.ToLower(py)
    domain := pydowncase + ".com"
    outr, err := domainAvailable(word, domain)
    if err != nil {
        fmt.Println("Error: ", err)
        continue
    }
    if outr.available {
        fmt.Printf("[Ohh Yeah] %s %s\n", outr.word, outr.domain)
        continue
    }
    fmt.Printf("\t\t\t %s %s %s\n", outr.word, outr.domain, outr.summary)
}
type checkResult struct {
    word      string
    domain    string
    available bool
    summary   string
}
func domainAvailable(word string, domain string) (ch checkResult, err error) {
    var summary string
    var output []byte
    ch.word = word
    ch.domain = domain
    cmd := exec.Command("whois", domain)
    output, err = cmd.Output()
    if err != nil {
        fmt.Println(err)
        return
    }
    outputstring := string(output)
    if strings.Contains(outputstring, "No match for \"") {
        ch.available = true
        return
    }
    summary = firstLineOf(outputstring, "Registrant Name") + " => "
    summary = summary + firstLineOf(outputstring, "Expiration Date")
    ch.summary = summary
    return
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
2018/07/04 15:55

订阅模式 - fanout

package com.shi.ps; import java.io.IOException; import java.util.concurrent.TimeoutException; import org.junit.Test; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connec......

0
0
发表了博客
2018/01/05 16:01

Exchange-fanout 广播模式

一、前言   我们看到生产者将消息投递到Queue中,实际上这在RabbitMQ中这种事情永远都不会发生。实际的情况是,生产者将消息发送到Exchange(交换器,下图中的X),由Exchange将消息路由到一个或多个Queue中(或者丢弃)。   RabbitMQ中的Exchange有四种类型,不同的类型有着不同的路由策略,RabbitMQ常用的Exchang...

0
0
发表了博客
2016/12/09 17:36

RabbitMQ (2) Exchange类型:fanout

Exchange类型之 fanout: 基本概念:它会把所有发送到该Exchange中的消息,发送到所有与它绑定的Queue中(信息是完整的)。 这是最简单的Exchange类型,没有任何约束。 这里重点是Exchange和Queue的绑定 第三个参数为routingKey,fanout类型并不需要,可以为“”,但不能为null,否则会抛处错误。 channel.queueBind(queu...

0
0
2014/08/26 16:12

spring接收qpid fanout 消息

一直用spring接收qpid的queue消息,其他团队有一个消息是用fanout exchange发送的,通过qpid client的源码找到了配置的方法。

0
0
发表于软件架构专区
2019/12/23 17:03

rabbitmq fanout 交换器测试

package sun.example.rabbitmq; import com.rabbitmq.client.*; import org.junit.Test; import java.io.IOException; import java.util.concurrent.TimeoutException; public class T3_fanout_exchange { ......

0
0
发表了博客
2014/11/05 15:32

RabbitMQ学习2--fanout

前文我们建立了一对Producter和一个Consumer。让我们来试一个复杂的情况。启动一个Producter和两个Consumer。会怎么样呢?? Producter: Consumer: ?? 好像哪里不对,两个Consumer是交替收到的数据。 看下服务器上,还是一个队列。 那再加一个Producter和一个Consumer会怎么样呢? 数据也是分别发送的,而且是随启随有。...

2
0
2020/05/24 14:08

Bilibili Kratos 框架源码分析(3) -- fanout 异步

在写项目代码时如果遇到需要异步处理时, 如异步更新 redis, 异步比对数据等等, 我们的常规处理一般是 MQ. 但有的时候我们的操作其实很简单, 写 MQ 显得又太重了, 那么该如何在程序里实现一个异步功能? 本篇文章就...

0
0
发表了博客
2020/06/22 09:44

Python之Rabbitmq的fanout模式

点击上方蓝字关注我们 1 什么是fanout模式? 这种模式下,传递到 Exchange 的消息将会转发到所有与其绑定的 Queue 上。 不需要指定 routing_key ,即使指定了也是无效。 需要提前将 Exchange 和 Queue 绑定,一个...

0
0
发表于DevOps专区
2019/01/28 17:07

20161021 路由 - fanout 交换机无参绑多队列

目的 验证rabbitmq的 finout方式交换机无参绑定多个队列的配置及使用。 环境 实验室环境的 3 台 Rabbit MQ 服务器,已经配置好集群。 过程 1 新建一个用户,用户名和密码都是 test $ rabbitmqctl add_user test...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
2 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部