我想允许用户跟踪GPU价格,并在价格达到价格时通过电子邮件发送。
我需要存储:
用户数据(id / email / info / email)
视频卡(itemID / price)
用户跟踪视频卡(用户ID /视频卡/ PriceAlertAtThisPRice)
然后运行2个cron作业。 1不断更新视频卡价格表(当没有用户跟踪时,也从被跟踪的GPU列表中删除项目) 和1通过每个用户的跟踪项目,并在需要价格提醒时发送电子邮件(可能每5分钟一次)
这是正确的还是有更好的方法来做到这一点?
答案 0 :(得分:0)
我会:
跟踪表应使用视频卡ID。
每X分钟只有1个cron作业来更新所有价格。
在这项工作结束时,检查每个GPU的价格并与所有目标进行比较。只向每个订阅者发送1封电子邮件,以查看其目标已满足的所有订阅。然后从每个订阅的GPU +目标组合中取消订阅该用户(删除该行)。
编辑:详细说明最后一部分。 您可能拥有比GPU更多的用户。
跟踪您选择的内容,这样您只需为每个用户发送1封电子邮件,无论他匹配多少跟踪的GPU。类似的东西:
found = {user1:[GPU1:$ 50,GPU2:$ 200],...}
对于发现的每个用户: 发送1封电子邮件,其中包含所有匹配的GPU。
对于发现的每个匹配用户+ GPU组合: - 从UsersTrackingGPU中删除行。
对于格式不佳的抱歉道歉,我对移动设备不太熟悉..
再次编辑:更多细节。
这样的事情:select * from UsersTrackingGPUs utg join gt g on gtu.id = g.id group by utg.user_id having g.price< = utg.tracking_price
抱歉,我暂时无法访问PC,但我认为这应该接近您所需要的 - 所有使用所有GPU的用户都会跟踪他们的跟踪价格高于目前的价格。
希望有所帮助: - )