Php 发送特定位置的电子邮件警报
在网页上有一个谷歌地图,用户可以在其中更改位置到他感兴趣的位置,并通过按下按钮注册新工作通知。保存的兴趣位置将由谷歌地图的边界定义。每当新作业出现在该范围内时,将根据用户选择的频率(每小时或每天)向该用户发送电子邮件警报 问题:我对如何处理所有用户的所有警报感到困惑 目前,我正在考虑对一个表使用cron作业,该表包含所有的Php 发送特定位置的电子邮件警报,php,mysql,codeigniter,google-maps,cron,Php,Mysql,Codeigniter,Google Maps,Cron,在网页上有一个谷歌地图,用户可以在其中更改位置到他感兴趣的位置,并通过按下按钮注册新工作通知。保存的兴趣位置将由谷歌地图的边界定义。每当新作业出现在该范围内时,将根据用户选择的频率(每小时或每天)向该用户发送电子邮件警报 问题:我对如何处理所有用户的所有警报感到困惑 目前,我正在考虑对一个表使用cron作业,该表包含所有的lat1、lng1、lat2、lng2、user_id,用于每小时运行一次的小时警报,另一个cron作业用于另一个表,用于每天运行一次的警报,比如说晚上9点。cron作业将循环
lat1、lng1、lat2、lng2、user_id
,用于每小时运行一次的小时警报,另一个cron作业用于另一个表,用于每天运行一次的警报,比如说晚上9点。cron作业将循环遍历定义google地图边界的所有单个用户的lat、lng对,并查询主作业
数据库中任何在1小时(或1天)内张贴时间戳的作业。如果有,将发送电子邮件警报
对于服务器来说,这似乎需要做很多工作,尤其是当数据库中有5000个用户的位置首选项和1000000个作业时。(30个ISH分钟完成这个任务?)我被困在这里,想要你的意见。 < P>而不是每次运行Con时搜索所有的东西(假设我正在正确地阅读这就是你正在做的),我会考虑在添加警报时执行那个检查: 警报已添加到系统中。系统检查任何匹配边界,如果找到任何匹配边界,则将每个匹配的信息存储到单独的表中。在这个新表中增加两列,一列用于每小时发送,一列用于每日发送 在每小时检查中,只发送那些尚未应用每小时标志的内容,而对于每日检查,则发送那些尚未设置每日标志的内容 然后删除任何在之后设置了这两个选项的位置
这样做,您将把要完成的工作从对每个cron作业(所有警报,所有边界)的一次大规模检查分解为对每个警报(一个警报,所有边界)的一次较小的检查。我认为您可能可以使用此频率创建两个cron
- 按小时计算李>
- 白天
旁注,这可能是不敬的,因为您用php标记了这个问题,但如果您想知道,quartz完全可以做您想要做的事情,但它是用Java实现的。如果你愿意,你可以查出来 如何将警报添加到系统中?我想这是找到使用类似于此()的数据的最佳方法的关键。用户移动地图以找到他喜欢的地点并按下按钮。google地图边界坐标随后保存到表格中,用于每小时或每日警报。