【问题标题】:Send email based on mongodb (query) trigger event基于mongodb(查询)触发事件发送邮件
【发布时间】:2013-08-20 04:17:03
【问题描述】:

所以我用 PHP 和 MongoDB 为我的网站创建了一个程序,我可以在其中查看有关我的成员的有用数据,并对其进行过滤。

例如,查询可能如下所示:显示所有男性,年龄在 20 到 30 岁之间,在过去 7 天内访问过该网站并至少登录该网站 10 次。

通过上面的查询,我会得到例如 100 个人,我想设置一个特定于过滤器的自动电子邮件(我有电子邮件功能)。

因此,在这种情况下,将发送 100 封电子邮件,但每次成员触发上述查询(当用户登录并匹配上述查询时,例如,该人可以将其性别从男性更改为女性,也许现在满足查询),将触发事件并发送电子邮件。

您将如何“存储”此类查询,并在会员访问网站时对其进行实际测试?

附言。我可能不知道这些查询,因为其他人可能正在使用我的网站,所以当用户登录时我无法运行“如果”逻辑,因为我不知道其他人的查询条件。

【问题讨论】:

    标签: php mongodb


    【解决方案1】:

    规则引擎最适合此任务。由于您使用的是 PHP,我建议您查看来自 Justin HilemanRuler 项目。这以及一般的规则引擎允许您定义规则(在概念上类似于 DB 查询条件),这些规则在评估上下文(一个或多个值)并返回布尔结果。大多数引擎都允许您以编程方式构建规则,这意味着您可以将它们的配置存储在数据库中(如果用户正在创建自己的标准,这是理想的选择)。

    可以在Jon Wage's blog 上找到一篇关于实施 Ruler 的优秀博文,其中他描述了在电子商务商店 OpenSky 中如何使用 Ruler。他们大量使用它来进行分析和客户奖励(例如,如果用户推荐朋友,然后他在 X 天内购买了产品,则原始用户会收到积分)。

    虽然没有详细介绍博客文章,但 OpenSky 确实有一个用于创建和管理规则的后端 UI。诸如“是来自 Facebook 的用户”之类的个别条件是用 PHP 实现的,但是 Web UI 允许制定复杂的规则,而该配置又存储在数据库中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-01
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      • 2012-10-21
      • 2021-11-26
      • 2016-01-19
      • 1970-01-01
      相关资源
      最近更新 更多