前一篇已经对Kestrel的启动类进行了说明,我们看到在启动类中定义了一个QueueCollection,这个类主要用在内存中维护用户定义的队列。
def loadQueues() {
Journal.getQueueNamesFromFolder(path) map { queue(_) }
}
def queue(name: String): Option[PersistentQueue] = synchronized {
if (shuttingDown) {
None
} else {
Some(queues.get(name) getOrElse {
// only happens when creating a queue for the first time.
val q = if (name contains '+') {
val master = name.split('+')(0)
fanout_queues.getOrElseUpdate(master, new mutable.HashSet[String]) += name
log.info("Fanout queue %s added to %s", name, master)
buildQueue(master, name, path.getPath)
} else {
buildQueue(name, name, path.getPath)
}
q.setup
queues(name) = q
q
})
}
}
val config = queueConfigMap.getOrElse(name, defaultQueueConfig)
log.info("Setting up queue %s: %s", realName, config)
new PersistentQueue(realName, path, config, timer, journalSyncTimer, Some(this.apply))
上文中说到Kestrel启动的时候首先实例化一个对象,然后调用QueueCollection.loadQueues();函数,根据上面的代码我们可以看到,这个函数主要是从文件系统中找到所有的队列持久化文件,并调用queue函数。我们发现这个类为每个队列创建创建了一个PersistentQueue类,并调用PersistentQueue类的setup方法,这个方法主要是回放这个队列对应的持久化文件,具体的操作下节介绍。
另外该类中还有一些对队列的操作方法,如add,remove等操作方法。
分享到:
相关推荐
NULL 博文链接:https://vanadiumlin.iteye.com/blog/1461152
NULL 博文链接:https://snowolf.iteye.com/blog/1604531
kestrel项目源文件包
在.NET 6.0上使用Kestrel配置和自定义HTTPS.doc
Asp.net Core MVC开发WMS仓库仓储管理系统源码 开发语言 : C# 数据库 : SQL2014 开发工具 : VS2019 源码类型 : WebForm 注意:不带技术支持,有帮助文件,虚拟商品,发货不退,看好再拍。 相关技术 Asp.net Core Mvc...
在ASP.NET Core中,如果在Kestrel中想使用HTTPS对站点进行加密传输,可以按照如下方式 申请证书 这一步就不详细说了,有免费的和收费的,申请完成之后会给你一个*.pfx结尾的文件。 添加NuGet包 nuget中...
资源分类:Python库 所属语言:Python 资源全名:kestrel-lang-1.0.5.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
NULL 博文链接:https://snowolf.iteye.com/blog/1605229
addlog-kestrel
NULL 博文链接:https://snowolf.iteye.com/blog/1612207
本示例可直接运行,方便快速了解Kestrel框架. Kestrel 是包含在 ASP.NET Core 项目模板中的 Web 服务器, .NET Core 支持的所有平台和版本均支持 Kestrel。
红隼节点Node.js 的 Kestrel 客户端安装 npm install kestrel.node用法 var Kestrel = require ( 'kestrel.node' ) ;var client = new Kestrel ( 'localhost:22133' ) ;// get can optionally take a timeout in ...
Kestrel是不是Unix或Windows的内核。
这篇文章主要是记录如何将Kestrel的服务封装在WindowService中 关于WindowsServer 请参考如下这篇文章 .netcore worker service (辅助角色服务) 的上手入门,包含linux和windows服务部署 开发服务 之前做过.net5...
介绍和背景Kestrel项目涉及使用全自制设计的计算和自我教育的自由,直至从原理图和寄存器传输逻辑一直到OS API和用户教程的各个级别公开记录的硬件和软件。 根据我的经验,它的设计来自多种来源: 硬件工程卓越奖...
activemq,httpsqs,kestrel,memcacheq等消息队列的安装部署,以及性能测试的详细说明文档
Kestrel(Kotlin 事件溯源) 用于在 Kotlin 中构建基于事件的 CQRS 应用程序的框架。 概括 事件溯源是一种架构范式,其中应用程序状态被建模并存储为在您的应用程序域中有意义的语义事件的不可变序列。 CQRS,命令...
python库。 资源全名:kestrel_lang-1.1.0-py3-none-any.whl