我什么时候会使用像ironMQ这样的消息队列,什么时候我会使用像ironWorker这样的工作处理工作?
我刚刚开始研究这两个主题,我很难区分这两个用途.我明白一个工作者或多或少是一个沙箱,它将在应用服务器外部的不同环境中运行一个程序,以增加用户体验.我也明白,一个消息队列很像它的数据库替代,一个任务被添加到一个队列,然后另一个服务器/编程监听该任务,然后处理它.然而,虽然我觉得我明白他们是什么,但我无法区分何时使用每一个,为什么.
如果我理解正确,我会使用一个工作人员进行图像处理等任务.但是为什么我不能使用消息队列呢,更重要的是为什么不呢?当然,我可以只有一个图像URL排队在ironMQ,然后有另一个编程检索和处理它.在我看来,这似乎是一个额外的步骤,所以我会避免.
当工作人员可用时,消息队列对我来说似乎是毫无意义的.当然,对于非密集型的任务,如发表评论,我可以有一个工作吗?
我可能误以为每个工具之间的区别,如果是,请让我直线.否则请帮忙.
解决方法
他们非常密切相关,所以我可以理解混乱.它们都是基于队列的系统,一个是消息队列,一个是任务/作业队列.这是一般的经验法则:
>如果要运行消费者/工作进程/服务器,您将使用IronMQ.
>如果要使Iron.io处理消费者/工作进程/服务器,您将使用IronWorker.您还可以使用IronWorker获得一系列其他功能/优点,而不仅仅是您不必管理自己的服务器并对其进行扩展.
所以不,如果您使用的是IronWorker,则不需要邮件队列,因为IronWorker是处理该队列的消息队列.
不要增加任何混淆,但有些人也一起使用IronWorker和IronMQ,工人们将IronMQ的消息拉出来.这种模式对于非常简短的任务来分摊工作人员的安装/拆卸(使数据库连接或工作人员必须做的任何设置)都很有用.