什么是API邮件/通知系统的正确devise模式?

我正在开发一个Rest API,使用节点jsmongo,并将其表示为技术。 我的模型包括用户,场地等。另外每个用户都有状态。 状态的例子可以是当用户注册第一个状态是'new_user'时,一个星期后状态必须是'first_week_user'等等。

这些州的目的是根据他或她的状态通知用户。 例如,如果用户像图片和用户在第一周(他有'first_week'状态),所以必须发送电子邮件给他。 我现在正处于devise阶段,所以我想知道是否有人要面对同样的问题。

我想到的devise是在用户对象中放置一个notification_profile ,并使用cron作业来检查当天的状态和动作,并根据这些信息发送电子邮件/推送通知。

你怎么看? 有更好的select吗? 例如我可以有一个电子邮件API,并排队电子邮件打这个API。 你知道在哪里可以find面临这个问题的devise模式的信息?

非常感谢你的帮助。

没有更多的细节,这听起来像你需要观察者模式。

从本质上讲,您的Email组件将订阅每个Person对象的like(photo photo)事件,并立即执行电子邮件发送作业,或安排作业稍后运行,作为批处理的一部分。

指定状态转换的一种方法是作为分层状态机。 请参阅http://www.eventhelix.com/realtimemantra/hierarchicalstatemachine.htm#.VNJIflXF–和http://en.wikipedia.org/wiki/UML_state_machine

我没有一个好的node.js例子,但是这里有一个C#实现 ,它也包含了定时事件的概念。 本质上,状态机会跟踪NextTimedEventAt因此您可以在适当的时间有效地将其从数据库中拉出来以触发基于时间的事件。

动作发生在状态转换上:当你进入一个状态或离开一个状态。