bit*_*cle 5 python epoll file-descriptor rabbitmq
我正在进行技术报告,从数据库轮询(通过同步存储过程调用)切换到消息队列(通过pub/sub).我希望能够解释如何轮询数据库与设置与AMQP代理的连接和配置消息处理程序有很大的不同和重要性.
有人可以在这里提供一个解释,或者指出一个关于epoll在通知套接字上可用的新数据时如何工作的高级教程?
我假设"epoll是如何工作的"你指的是它是如何工作的,从用户的角度来看(如,代码如何被通知,应该处理它),而不是内核的观点(如,如何实施epoll).
简短的版本很简单:就像poll两件事情一样:
poll(特别是边缘触发和一次性通知),可以让你在某些情况下编写更有效的代码.(还有一个事实是它只适用于Linux.BSD和相关系统有kqueue一种截然不同的方式来获得一些相同的优点,Solaris有/dev/poll等等,而且有些*nixes没有任何等价物.所以如果你想写的话便携式代码,您要么必须使用poll,要么使用某些更高级别的库libevent,或者编写相当于您libevent自己的代码.)
如果您已经理解select并且poll,维基百科文章和其参考文献中链接的博客文章应该在它们之间,告诉您几乎所有您需要知道的内容,并且手册页将填补任何空白.
如果没有,请先了解一下poll,然后才有必要了解它们epoll的不同之处.
我仍然不确定这与你的主要问题有什么关系.你可以epoll在inotify一个数据库文件,或者一个pipe或socket一个邮件系统底层,或其它任何东西可以表示为Linux的文件描述符,所以我不知道怎么理解epoll会帮助你解释轮询数据库之间的差异与轮询消息队列.当然,两者之间存在巨大差异,但事件触发机制不是其中之一.
| 归档时间: |
|
| 查看次数: |
2652 次 |
| 最近记录: |