Php 如何编写搜索订阅系统的代码?

Php 如何编写搜索订阅系统的代码?,php,mysql,cron,Php,Mysql,Cron,我有一个市场网站,其中包括学生住房清单。我希望我的用户进行一个特定的搜索查询,然后能够“订阅”它,这意味着如果一个新的房子是符合该特定查询列出,那么他们将收到一封电子邮件 做这样的事情最好的方法是什么?到目前为止,我知道两种选择: 在发布列表时检查匹配的订阅-如果有数千个匹配的订阅并且发送了数千封电子邮件,那么这不会显著增加发布列表的用户的处理时间吗 使用CRON作业根据匹配的列表检查所有订阅-我猜这稍微有点棘手 你有什么建议?我希望得到一些指导/输入。我会做一些自动任务(例如cronjob

我有一个市场网站,其中包括学生住房清单。我希望我的用户进行一个特定的搜索查询,然后能够“订阅”它,这意味着如果一个新的房子是符合该特定查询列出,那么他们将收到一封电子邮件

做这样的事情最好的方法是什么?到目前为止,我知道两种选择:

  • 在发布列表时检查匹配的订阅-如果有数千个匹配的订阅并且发送了数千封电子邮件,那么这不会显著增加发布列表的用户的处理时间吗

  • 使用CRON作业根据匹配的列表检查所有订阅-我猜这稍微有点棘手


你有什么建议?我希望得到一些指导/输入。

我会做一些自动任务(例如cronjob),每[天|周|月]为每个用户检查哪些新列表符合他们的偏好。你不想每次发布一个新的列表时都这么做,因为这是一些缺点

  • 您需要找到对特定列表感兴趣的用户,这是一项比其他方式复杂得多的任务
  • 作为一个用户,白天有收到大量电子邮件的风险。我想你应该有一份[每日、每周、每月、每小时]摘要

  • 我从事过与您讨论的类似的项目。我发现最好使用CRON方法,原因如下:

    你不想一天几次用垃圾邮件轰炸用户(当一个新的列表发布时),而是想专注于一天一次,甚至一周一次,以减少用户取消订阅的机会

    您可以安排CRON在系统负载不重的“非工作时间”运行脚本,因为您需要逐步检查所有注册您的服务的用户,然后检查是否添加了符合其搜索条件的新资源清册


    当然,所有这些都假设您已经准备好代码/模式以促进CRON解决方案。

    只要您在后台异步执行检查,就可以在不影响用户进行发布的情况下检查列表的发布时间。