func main() { log.Printf("AMQP URL: %s", config.Conf.AMQPUrl()) conn, err := amqp.Dial(config.Conf.AMQPUrl()) utils.FailOnError(err, "Failed to connect to RabbitMQ") defer conn.Close() ch, err := conn.Channel() utils.FailOnError(err, "Failed to open a channel") defer ch.Close() q, err := ch.QueueDeclare( "hello", // name false, // durable false, // delete when usused false, // exclusive false, // no-wait nil, // arguments ) utils.FailOnError(err, "Failed to declare a queue") msgs, err := ch.Consume( q.Name, // queue "", // consumer true, // auto-ack false, // exclusive false, // no-local false, // no-wait nil, // args ) utils.FailOnError(err, "Failed to register a consumer") forever := make(chan bool) go func() { for d := range msgs { log.Printf("Received a message: %s", d.Body) } }() log.Printf(" [*] Waiting for messages. To exit press CTRL+C") <-forever }
func main() { conf := config.Conf client := redis.NewClient(&redis.Options{ Addr: fmt.Sprintf("%s:%d", conf.REDIS_HOST, conf.REDIS_PORT), Password: conf.REDIS_PASS, DB: conf.REDIS_DB, }) pong, err := client.Ping().Result() fmt.Println(pong, err) err = client.Set("key", 123, 0).Err() utils.FailOnError(err, "Cannot set key to value in Redis") client.IncrBy("key", 256) val, err := client.Get("key").Result() utils.FailOnError(err, "Cannot read key from Redis") fmt.Println("key", val) }
func main() { log.Printf("AMQP URL: %s", config.Conf.AMQPUrl()) conn, err := amqp.Dial(config.Conf.AMQPUrl()) utils.FailOnError(err, "Failed to connect to RabbitMQ") defer conn.Close() ch, err := conn.Channel() utils.FailOnError(err, "Failed to open a channel") defer ch.Close() q, err := ch.QueueDeclare( "hello", // name false, // durable false, // delete when unused false, // exclusive false, // no-wait nil, // arguments ) utils.FailOnError(err, "Failed to declare a queue") data := map[string]string{ "order_id": "1", "amount": "10.00"} message := Message{"Update", data} body, err := json.Marshal(message) utils.FailOnError(err, "Failed to dump message to json") err = ch.Publish( "", // exchange q.Name, // routing key false, // mandatory false, // immediate amqp.Publishing{ ContentType: "application/json", Body: body, }) log.Printf(" [x] Sent %s", body) utils.FailOnError(err, "Failed to publish a message") }