我有一个网络应用程序(使用codeigniter构建),每隔一段时间运行一次。它将执行一个存储过程,该过程获取最近订单的列表。部分任务是使用存储过程,但我确定解决方案是否需要另一种不应成为问题的方法。
检索到的记录将各自具有唯一的订单ID。当记录被提取出来时,订单数据被记录在一起,作为pdf放在一起,并通过电子邮件发送给订单所有者。
我的问题是哪种方法只是检索之前未处理过的记录。我最初的想法是将最后处理的记录存储在一个文件中。每次运行applcation时,查找文件,获取最后存储的ID,然后提取id为>的记录。那个那个。
前段时间我写了一个Perl脚本,它使用Tail模块执行与日志文件类似的操作。它会查找并提交并查看未处理的新行然后处理它,但是那个scipt又一直在运行。我知道它有很大的不同但是我在PHP中可以用db做任何类似的事情吗?
我不想在数据库中存储任何内容,只能通过存储过程进行查询。
谢谢,
比利
答案 0 :(得分:3)
恕我直言,检索以前未处理过的记录的最佳方法是获取具有特定状态的记录。
你提到了:
我不想存储 DB中的任何内容,只能通过a查询 存储过程。
我建议在订单表中添加状态字段,并在订单发送后更改订单状态。
我不相信提取订单ID>以前发送的订单ID。如果您需要更新旧的已发送订单而又需要再次发送,会发生什么?
答案 1 :(得分:1)
在Orders表中添加一个标志,指示它是否已被处理。或者保留一个包含MailID的表,OrderId可以通过电子邮件跟踪邮件的订单。要邮寄新的,只需离开连接并说出MailId为空的位置。那会给你那些没有邮寄的东西。
我没有理由将这个与数据库分开,并且有很多原因(特别是保持简单......)来保持它。
Rgds GJ