使用 Python 监控数据库

项目上的数据库采用 Oracle, 需要一种机制来检测数据库是否宕机,进而切换数据库.

服务器使用 linux, 天生支持 Python, 而且脚本语言比起 Java 更加方便,因为不需要编译了啊,所以这里决定使用 Python 来监控数据库.

RabbitMQ(五) 主题(Topic)

[toc]

使用场景:发送端不只按固定的routing key发送消息,而是按字符串“匹配”发送,接收端同样如此。

RabbitMQ(五) 主题(Topic)

[toc]

使用场景:发送端不只按固定的routing key发送消息,而是按字符串“匹配”发送,接收端同样如此。

RabbitMQ(三) 发布/订阅

使用场景:发布、订阅模式,发送端发送广播消息,多个接收端接收。

[toc]

前面我们实现了工作队列,并且我们的工作队列中的一个任务只会发给一个工作者,除非某个工作者未完成任务意外被杀死,会转发给另外的工作者。这篇博客中,我们会做一些改变,就是把一个消息发给多个消费者,这种模式称之为发布/订阅(类似观察者模式)。

为了验证这种模式,我们准备构建一个简单的日志系统。这个系统包含两类程序,一类程序发动日志,另一类程序接收......

RabbitMQ(三) 发布/订阅

使用场景:发布、订阅模式,发送端发送广播消息,多个接收端接收。

[toc]

前面我们实现了工作队列,并且我们的工作队列中的一个任务只会发给一个工作者,除非某个工作者未完成任务意外被杀死,会转发给另外的工作者。这篇博客中,我们会做一些改变,就是把一个消息发给多个消费者,这种模式称之为发布/订阅(类似观察者模式)。

为了验证这种模式,我们准备构建一个简单的日志系统。这个系统包含两类程序,一类程序发动日志,另一类程序接收......

RabbitMQ(二) 工作队列

[toc]

工作队列的主要任务是:避免立刻执行资源密集型任务,然后必须等待其完成。相反地,我们进行任务调度:我们把任务封装为消息发送给队列。工作进行在后台运行并不断的从队列中取出任务然后执行。当你运行了多个工作进程时,任务队列中的任务将会被工作进程共享执行。

这样的概念在web应用中极其有用,当在很短的HTTP请求间需要执行复杂的任务

生产者:

public class NewTask {

//队列名称

private final static String QUEUE_NAME = "workqueue";

public static vo......