我在windows中有应用程序,当系统中的新事件被调用到PHP脚本来运行流程时; 流意味着在服务器上的DB行中创建一行,上传图像并更新数据库,以及另外几个服务器调用 此外,当服务器出现错误或问题时,本地机器需要在本地数据库中保留相同的行并保持当前位置,这样当恢复脚本看到需要恢复时,他将仅从该部分运行并且不是从一开始。
现在,我有一个函数调用其他函数,如:
***伪代码****
{{1}}
我想创建一个像:
这样的开关案例{{1}}
我该如何做,比如事件队列,如果我想要恢复失败的事件,那么确切地知道从哪里开始
当我想要恢复时,我需要检查本地数据库中的部分并以服务器行为例
但我如何防止切换案例中的重复代码
也许我需要一个队列管理器,交换机不是一个好的解决方案? 感谢
答案 0 :(得分:1)
如果您没有将break
添加到您的切换案例中,它将根据您的切入点充当漏斗。
switch ($enum_action){ //<-- this should be a variable that contains yours case name
case "create_db_row":
$this->createDBRow();
// Break missing on purpose to allow further execution
case "get_images":
$this->getimagesdata();
// Break missing on purpose to allow further execution
case "upload_images":
$this->uploadImage();
$this->updateServerDB();
break;
default:
throw new \Exception("Unknown case");
}