如何使用Sails JS实现作业/队列系统

时间:2015-11-15 21:32:05

标签: sails.js

拥有后台工作人员是一个相当大的应用程序的一个非常常见的要求 - 但似乎没有任何方法在Sails JS开箱即用。实现这个的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我不知道这是否是最好的方法,但这就是我在当前系统中实现它的方式。

我们在AWS上使用Elastic Beanstalk中的sails.js。这允许我部署一个侦听队列的工作环境。配置需要一个从队列接收消息的端点。

考虑到这一点,我创建了一个只有WorkerController操作的index。此索引操作表现为需要通过队列执行的功能的路由器。

出于安全考虑,您需要锁定此控制器+操作路径。

为了触发worker,我使用包含所需参数的JSON主体向队列发送消息。一个示例消息是:

{
    "task": "processTransaction",
    "id": 1207
}

这些参数可作为请求参数用于WorkerController.index操作,然后用于触发函数并传递参数。