在数据库中跟踪脚本是否成功完成的最佳方法

时间:2012-02-17 14:21:27

标签: php mysql tracking

我正在使用PHP / MySQL,虽然我认为这个问题本质上是语言/ db矛盾。我有一个PHP脚本连接到一个API,获取响应数据,解析它,然后将其发送到不同的API以存储在其数据库中。有时,由于其中一个API出错,此过程失败。因此,我想轻松追踪其成功/失败。

我应该澄清,在这种情况下,“成功”被定义为从第一个API获取所需数据并成功通过第二个API处理它的脚本。因此,“失败”可能来自3个可能的事情:

  1. 第一个API抛出错误
  2. 第二个API抛出错误
  3. 我的脚本超时。
  4. 此脚本每天运行一次。我想将成功或失败结果存储在数据库中,以便我可以轻松访问网页并查看结果。我目前正在考虑做以下事情:

    1. 将当前时间存储在脚本开头的变量中。
    2. 立即将该时间戳插入数据库。
    3. 脚本完成后,将相同的时间戳插入数据库 试。
    4. 如果脚本失败,请在数据库中记录失败原因。
    5. 然后我根据单个时间戳是否在数据库中有两个条目来判断成功或失败,而不是仅仅一个。

      这是最好的方法,还是其他更好的方法呢?我没有看到为什么这不起作用的任何理由,但我觉得必须存在一些公认的标准实现方法。

2 个答案:

答案 0 :(得分:1)

用户声明关闭函数可能是另一种选择:使用register_shutdown_function(),您可以声明在脚本终止时执行的回调,无论是成功,用户中止还是超时

答案 1 :(得分:1)

您可以使用锁定文件:

  • 在脚本的最开始,您在文件系统的某处创建一个锁文件
  • 在脚本的最后,如果一切正常,则从文件系统中删除它

然后您只需要监视放置这些文件的目录。使用锁定文件的创建日期,您可以找到哪一天不起作用。

您可以通过监视脚本组合此系统,该监视脚本在存在锁定文件时发送警报并且创建日期早于给定间隔(假设您的脚本通常在几分钟内运行,例如1小时)。 p>