【问题标题】:pausing message sending & receiving from a java web app暂停从 Java Web 应用程序发送和接收消息
【发布时间】:2011-06-05 23:57:18
【问题描述】:

在设计可以发送和接收消息的网络应用时需要帮助。它必须具有暂停功能。我无法思考如何暂停发送和接收(线程吓到我 T_T)。 接收端是客户端/服务器(使用 netty)

欢迎提出任何建议。谢谢!!

【问题讨论】:

  • 暂停发送和接收的确切目的是什么?为什么你需要这样的功能?能详细点吗?
  • 我认为我们需要更多关于网络应用正在做什么的上下文。它需要使用消息协议与后端通信......同步或异步流?或者这两个 Web 客户端是否在相互通信(例如聊天应用程序)?
  • 对不起,伙计们..网络应用程序用于发送接收 iso8583 消息..所以暂停模拟(或强制)超时..他们还想在给定的时间内运行它..我想如果我知道如何暂停,我就会知道如何在给定的时间内发送/接收消息。网络应用程序可以由多个用户同时运行。每个用户都可以同时运行发送/接收..我真的对设计没有具体的想法,但有人建议使用 JMS..

标签: java multithreading message netty


【解决方案1】:

我同意 Greg/Harry 的观点,即需要更多信息,但让我声明,在 Java 5 和 6 中引入 java.util.concurrent 后线程变得不那么可怕了,即更高层次的抽象,开箱即用地处理许多现实世界的线程情况。如果我理解您想要正确执行的操作,请先查看BlockingQueue

但是,如果您只是想要一个可以暂停的发送/接收机制,请设置一个具有 INIT、ROUTE 和 PAUSE 状态的finite state machine。 INIT 用于在它准备好完成工作之前启动,ROUTE 用于等待消息接收发送出去,而 PAUSE 用于它接收到 PAUSE 命令并等待 RESUME 命令。

您可以使用 java.util.concurrent.Executor 在 Web 应用程序内的单独线程中运行此进程(以及任何其他进程)。

【讨论】:

    猜你喜欢
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 2012-08-17
    相关资源
    最近更新 更多