我最近想知道我在工作中遇到的一个问题。我需要做一些行动,根据记录在数据库中的日期(如事件的开始),检查它是否启动,然后发送一些电子邮件。这里的问题是只做一次。由于事件只是在后台开始,所以我认为CRON/Scheduler(在这种情况下是Indatus/dispatcher)是在这里实现的最佳选项,因为我可以每5分钟运行一个脚本来检查是否出现了一些新事件,但真正的问题是如何标记实际的操作是否已在此事件上执行。我在考虑某种具有操作名称的日志表,以及包含id的参数的2列,该操作实际上启动如下
id name id_parameter_1 id_parameter_2并且像这样存储记录,但是我认为如果有更多的记录(只在最后5-10分钟之前过滤db记录会有帮助,但仍然.)。你在这件事上有什么特别的经验来指导我并分享一些想法吗?)
发布于 2015-05-13 11:14:47
如果每个事件只有一个动作,例如在邮件开始时发送电子邮件,那么为什么不直接展开事件表,并在发送邮件时标记一个标志列呢?这样,您就可以避免与另一个只保存操作的表连接。
如果您必须将其分开,那么我会选择您提议的表,但我不确定您是否需要这些参数列,这一点在最后并不重要。如果每个事件只有一个动作,那么我认为您可以安全地放下额外的键(id),只需拉出事件主键即可。您可以使用它连接表,并且事情不那么复杂,而且可能更快,因为在一个查询中,可以从事件表中提取日期(假设它在那里),并从新表中提取操作,通过相同的事件索引进行搜索和连接。
只是我的想法。希望能帮上忙。
https://stackoverflow.com/questions/30212912
复制相似问题