我最近想知道我在工作中遇到的一个问题。我需要根据数据库中的记录日期(如事件的开始)做一些操作,检查它是否开始,然后发送一些电子邮件。这里的问题是只做一次。由于事件刚刚在后台启动,我认为CRON / Scheduler(在这种情况下是Indatus / dispatcher)是在这里实现的最佳选择,因为我可以每5分钟运行一次脚本来检查是否出现了一些新事件,但真正的问题你是如何标记对此事件采取的实际行动。我正在考虑某种带有动作名称的日志表和2个用于保存id的参数列,其实际触发的动作就像
id name id_parameter_1 id_parameter_2
并存储这样的记录,但我认为随着时间的推移,当记录更多时,它可能会大大减慢(仅过去5-10分钟过滤db记录会有所帮助,但仍然......)。你有什么特别的经验来指导我并分享一些想法吗? :)
答案 0 :(得分:0)
如果每个活动只有一个动作,例如在启动时发送电子邮件,为什么不直接使用标记列扩展事件表,标记是否发送了邮件?这样你就可以避免使用另一个只是举行操作的表来加入。
如果你必须将它分开,那么我会选择你提议的表格,但是我不确定你是否需要那些参数列,这最终并不重要。如果每个事件只有一个动作,而且只有一个,那么我认为你可以安全地删除额外的密钥(id),而只需拉入事件主键。您可以使用它来加入表格并使事情变得更简单,并且可能更快,就像您在单个查询中从事件表中拉出日期(假设它在那里)并从新表中拉出操作,搜索和加入相同的事件索引。
只是我的想法。希望它有所帮助。