我是怎么学习.net core的<二>
调试eshop
前面eshop源码只能一个一个文件的看,看到了网站部分,就有写头晕啦。
还是希望彻底运行调试一下程序,才能有感觉。
先测试运行环境。安装redis,rabbitmq.
redis安装比较简单,测试也非常容易,就是打开一个客户端连接,一个KEY里面直接写Value
开另外一个客户端,就可以根据KEY取Value
总体上来说就是一个巨大的dictionary.
然而程序还是没有跑通,提示的Bug是rabbitmq连接为空的。
可是明明测试rabbitmq是成功的,调试的时候发现amqp的端口是5678
修改端口依然调试失败
专门写个小程序测试一下rabbitmq用法,简单大气,比较喜欢这种风格,发现在本地的话,修改hostname即可
不知道为啥eshop配置文件的hostname是空的,所以出错了,把HostName修改为本地
果然调试通过,输出swagger 风格Api,大功告成
使用Polly
var policy = Policy.Handle() .Or()
.WaitAndRetry(5, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), (ex, time) =>
{
_logger.LogWarning(ex.ToString());
});
using (var channel = _persisterConnection.CreateModel())
{
var eventName = @event.GetType()
.Name;
channel.ExchangeDeclare(exchange: BROKER_NAME,
type: "direct");
var message = JsonConvert.SerializeObject(@event);
var body = Encoding.UTF8.GetBytes(message);
policy.Execute(() =>
{
channel.BasicPublish(exchange: BROKER_NAME,
routingKey: eventName,
basicProperties: null,
body: body);
});
}
接触Swagger
简直被惊艳了,不仅可以描述API,还可以发送请求,连MODEL都展示了,而我同事一直在手动写WORD文档,先研究研究然后告诉他怎么提高效率