代码之家  ›  专栏  ›  技术社区  ›  Rahma Abdulhameed

带有C#和SQL Server的Amazon SQS

  •  3
  • Rahma Abdulhameed  · 技术社区  · 7 年前

    我被要求使用 在我们的新系统中。我们的业务取决于客户向我们的支持代理发送一些任务/请求,一旦客户提交了他的任务/请求,它应该在我的SQL Server数据库中排队,所有排队的任务都应该分配给非繁忙的代理,因为流表明代理可以同时处理或处理一个任务/请求,因此,如果我有10个任务/请求到达我的系统,所有任务都应该排队,然后,系统应该将任务转发给现在有空的代理,一旦代理解决了任务,他应该获得下一个任务(如果有的话),否则,系统应该等待任何代理完成其当前任务,以分配一个新的任务,当然,任务/请求处理中不应该有任何重复……等等。

    • 这是我第一次使用排队服务,简单的参考资料可以澄清什么是亚马逊SQS?

    • 如何将其用于C和SQL Server?我读过 this topic

    1 回复  |  直到 7 年前
        1
  •  2
  •   tster    7 年前

    要求我们设计一个基于一段散文的系统是一个相当高的要求。
    SQS只是一个云队列系统。根据你的描述,我不确定这会使你的系统更好。

    首先,您已经在数据库中存储了所有内容,那么为什么还需要在队列中存储内容呢?如果希望在数据库中存储数据时具有队列语义,可以考虑使用SQL Server Service Broker( https://technet.microsoft.com/en-us/library/ms345108(v=sql.90).aspx#sqlsvcbr_topic2

    其次,听起来您可能有一个围绕任务的工作流,它可以扩展到不仅仅是一个队列,供代理提取任务。例如,您是否对这些任务有任何跟进(通过电子邮件向客户询问他们的服务如何,将任务搁置,直到客户回复您,等等)?如果是这样,您可能想看看简单的工作流服务( https://aws.amazon.com/swf/ )或者,由于您已经在Microsoft的堆栈中,您可以查看Windows工作流( https://msdn.microsoft.com/en-us/library/ee342461.aspx

    http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html )它支持重复数据消除,但限制在每秒300个事务(也就是说:大约100条消息/秒,用于标准的发送-接收-删除API。使用批处理显然这个数字可能要高得多,但考虑到您的用例,听起来您不可能在无需大量工作的情况下使用批处理)。