message-queue - 处理数百万条定时(预定)消息的解决方案?

标签 message-queue scheduled-tasks

我正在评估处理大量排队消息的可能解决方案,这些消息必须在特定日期和时间交付给工作人员。执行它们的结果主要是对存储数据的更新,它们最初可能是也可能不是由用户操作触发的。

例如,想想你在一个假设的大型星际游戏服务器中实现了什么,用于存储和执行用户的操作,比如升级建筑物、孵化士兵,所有这些都需要在几秒钟后应用到游戏状态或在玩家启动它们后几分钟。

问题是我似乎找不到正确的术语来命名这个问题区域。有几个看起来相似但不同的:

cron/任务/作业调度程序

  • 队列的内容不是动态的,它是预定义的。
  • 每个任务是预定 .

  • 消息队列
  • 队列的内容是动态 .
  • 每项任务都旨在立即交付。

  • ???
  • 队列的内容是动态 .
  • 每个任务是预定 .

  • 如果有消息队列允许有条件地传递消息,那可能就是这样。

    摘要:
  • 这种技术叫什么?
  • 有哪些解决方案?
  • 最佳答案

    从表面上看,这听起来像是一个微不足道的优先级队列。在这种情况下,优先级是完成时间,您检查队列的前端以查看下一个事件何时到期。几乎每种语言都带有优先队列或可以轻松用作一个队列的东西,所以我不确定这里的实际问题是什么。

    当涉及数百万条消息时,您是否担心可扩展性?显然,“百万”是一个毫无意义的术语——如果每天有数百万,那就是一个小问题。如果每秒数百万,那么您可以水平扩展,将队列拆分到多个进程。 (这种队列系统的好处是这种并行化非常简单。)

    我敢打赌,在实现大型实时战略游戏服务器时,您会在开始遇到消息队列问题之前很久就遇到网络问题。

    关于message-queue - 处理数百万条定时(预定)消息的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155889/

    相关文章:

    symfony - 修改消费者内部rabbitMQ发送的消息

    .net - 您可以/应该将 SQL Server Service Broker 与 .NET 应用程序一起使用吗?

    visual-studio-2010 - Visual Studio 控制台应用程序安装程序 - 计划 Windows 任务

    logging - Powershell 计划任务冲突?

    sql - 从 Windows Azure 中的 sFTP 服务器导入数据库

    java - 在 JMS 中使用 CCDT 文件连接到 IBM MQ

    c# - 如何创建自定义消息泵?

    c - 为什么我无法使用 msgrcv() 访问消息队列中的消息文本?

    windows - Windows计划任务在重新启动后无法正常工作

    java - JSP/Servlet Web 应用程序中的后台定时器任务