正在寻找一种简单的方法(即,不需要我设置单独的服务器来处理消息队列的方法)来对运行计算并生成图形的小型Web界面进行长轮询。这是我的网络界面需要执行的操作:
这是我的问题:
我仅使用Flask和jQuery构建了几个类似的应用程序。根据这些经验,我会说你的计划很好。
Do not use the filesystem。你将遇到JavaScript安全性问题/保护措施。在极少数情况下,你会找到合理的解决方法,但仍然没有任何可移植或可扩展的功能。相反,请使用像Flask这样的小型本地Web服务框架。
Do not pickle。使用JSON。这是Web应用程序和REST界面的语言。jQuery和用于绘制图表,图形等的漂亮的基于jQuery的插件将期望使用JSON。它易于使用,易于阅读,对于小型应用程序,没有理由去其他任何地方。
Long-polling is fine for what you want to accomplish。基于纯HTTP的应用程序有一些限制。WebSockets和类似Socket.ish的类似Socket层“是未来”。但是,以我的经验,要找到好的,简单的服务器端实现示例很困难。我好辛苦 有很多示例希望你设置Node.js,REDIS和其他中间件。但是,为什么我们必须设置两个或三个单独的中间件服务器?太可笑了 因此,在简单的纯Python网络框架(例如Flask)上进行长时间轮询是IMO的方法。
该代码不只是一小段代码,因此,我没有在此处包括它,而是将一个简化的示例放入了bitbucket上的Mercurial存储库中,你可以自由查看,复制或克隆。分为三个部分:
需求:构建一个基于。NET的应用程序,该应用程序可以定期从IBM Websphere消息队列读取消息,并将这些消息保存到数据库中
主要内容:1 什么是MQ,2 为什么要用 MQ (作用、功能),3 MQ 的分类,4 MQ 的选择1 什么是MQ MQ(message queue),从字面意思来看,本质是一个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ 是一种非常常见的上下游 “逻辑解耦 + 物理解耦” 的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ ,不用依赖其他服务。 2 为什么要用 MQ (作用、功能)
为什么已经拥有了共享内存时需要消息队列呢? 这将是多种原因,让我们将其分解为多个点来简化 - 据了解,一旦消息被一个进程接收到,它将不再可用于任何其他进程。 而在共享内存中,数据可供多个进程访问。 如果想使用小信息格式进行通信。 当多个进程同时进行通信时,共享内存数据需要同步保护。 使用共享内存的写入和读取频率很高,那么实现功能将会非常复杂。 在这种情况下不值得使用。 如果所有的进程不需要访问共享
一、消息模型 点对点 发布/订阅 二、使用场景 异步处理 流量削锋 应用解耦 三、可靠性 发送端的可靠性 接收端的可靠性 参考资料 一、消息模型 点对点 消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。 发布/订阅 消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。 发布与订阅模式和观察者模式有以下不同: 观察者模式中,观察者和主题都知道对方的存在;
一个线程会从消息队列中收取消息,另一个线程会定时给消息队列发送普通消息和紧急消息 一个线程会从消息队列中收取消息,另一个线程会定时给消息队列发送普通消息和紧急消息 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: *
消息队列接口 结构体 struct rt_messagequeue 消息队列控制块 更多... 类型定义 typedef struct rt_messagequeue * rt_mq_t 消息队列类型指针定义 函数 rt_err_t rt_mq_init (rt_mq_t mq, const char *name, void *msgpool, rt_size_t msg_