检查以前的所有功能是否成功

时间:2014-04-02 13:40:25

标签: php mysql api queue jobs

我有一个长时间运行的脚本,它获取一个(长)文件夹数组(在该文件夹中包含文件的子数组),我必须对每个文件执行多个操作。

确保我所有行动成功的最佳方法是什么?以及如何处理不成功的行为?

让我们说如果我的mysql服务器不可用或者像Amazon S3 API无法正常工作会发生什么。

我的剧本的伪代码:

  1. 使用文件夹/文件数组启动脚本
  2. 循环浏览每个文件夹
  3. 循环浏览该文件夹中的每个文件
  4. 打开文件(来自外部服务器)并尝试将其转换为自定义对象(仅当文件是有效的“对象”时才继续)
    1. 提取文件的某些部分并将其保存到Amazon S3存储桶
    2. 提取文件的其他部分并将其保存到另一个Amazon S3存储桶
    3. 提取文件的元数据/文本并插入elasticsearch
    4. 更新mysql记录

1 个答案:

答案 0 :(得分:0)

如上所述,你可以做的是抛出并抓住Exceptions

因此,例如,如果使用foreach迭代文件夹中的文件,对这些文件执行某些操作,则会出现错误,您可以抛出异常并停止代码执行,直到被捕获为止。

所以也许您想要使用记录器。从2014年开始,您可能希望使用DIC来注入记录器服务,否则您只需使用存储错误的单例(only considering the great flaws that brings)。

因此,无论哪种方式,您都拥有存储每个错误的服务。 最后,您只需检查是否有任何错误,然后采取相应措施。