- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为以下场景寻找一个好的设计模式,
我需要按照以下步骤操作,每一步之后我都需要更新数据库中的状态。为此,我在 updateStatus(String status) 中创建了一个单独的类 UpdateStatusDAO 将更新数据库中的详细信息。步骤是,
1. Update Status as Processing Started
2. Read File
3. Update Status as Reading Completed
4. Process File
5. Update Status as File Processing Completed
6. Rename File
7. Update Status as File Rename Completed
8. Update Status as Processing Completed
try{
UpdateStatusDAO updateStatusDAO = new UpdateStatusDAO();
updateStatusDAO.updateStatus("Process Started");
// Read File
try{
} catch(Exception e){
throw new Exception();
} finally{
}
updateStatusDAO.updateStatus("Reading Completed");
// Process File
try{
} catch(Exception e){
throw new Exception();
} finally{
}
updateStatusDAO.updateStatus("File Processing Completed");
// Rename File
try{
} catch(Exception e){
throw new Exception();
} finally{
}
updateStatusDAO.updateStatus("File Rename Completed");
updateStatusDAO.updateStatus("Processing Completed");
} catch(Exception e){
} finally{
}
事情是这样的,假设由于某种原因文件处理失败。然后我需要将状态更新为阅读完成。未完成文件处理。我添加如下,
有没有其他更好的方法来处理这种情况。 ?
最佳答案
您可以考虑使用 Finite State Machine .每个步骤完成后,您将进入下一步。如果任何步骤失败,您将进入错误状态(您需要创建)。错误状态总是会自行推进,直到错误得到解决(也许错误的解决可能包括另一组步骤/状态,或者解决可能需要手动修复,您只需在修复后重置机器它)。每个步骤都有自己的任务,并且独立于其他步骤的工作。
关于java - 处理以下场景的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33611307/
这个问题在这里已经有了答案: standalone parentheses in javascript [duplicate] (5 个答案) 关闭 8 年前。 我在学习JavaScript,有时会
我是mysql新手,我必须减少以下更新查询的执行时间 UPDATE temp_countcalculations, ( SELECT count(*) as insuffcounts,CRP_
def escape_html(s): for (i, o) in (("&","&"),(">", ">"),(" "变成 ">"等。 关于python - 以下 for 循环
if (read(read(cin, data1), data2)) 问题是C++ Primer 5th Edition 的练习。 read 函数定义如下: std::istream &read(st
我想创建两个宏。其中一个将扩展到函数原型(prototype)和函数内容,另一个将扩展到仅函数原型(prototype)。我正在考虑创建以下内容: #ifdef SOME_CONDITION #def
我正在使用 jongo API - org.jongo.MongoCollection 是类。 我有对象 ID 列表并转换为与 ObjectId[] 相同并尝试按如下方式查询 collection.f
有人可以解释以下正则表达式匹配什么吗? ^.*$ 谢谢! 最佳答案 或者整个字符串或者整行,取决于是否multiline mode被使用。 关于java - 以下 ^.*$ 正则表达式匹配什么?,我们
#include void main() { int a,b,c; for(b = c = 10; a = "- FIGURE?, UMKC,XYZHello Folks,TFy!QJ
我的代码段中的以下代码行被 Sonar 检测为问题。 代码段: final int Pending=1; Sonar 问题: Name 'Pending' must matc
Print name of all activities with neither maximum nor minimum number of participants 我尝试了以下查询,但出现错误:
这个问题在这里已经有了答案: What is this practice called in JavaScript? (7 个回答) 关闭8年前。 (function() { //do stuff
根据任务,我们必须通过 foldr 实现 foldl。通过比较函数签名和 foldl 实现,我得到了以下解决方案: myFoldl :: (a -> b -> a) -> a -> [b] -> a
这个问题在这里已经有了答案: Export an es6 default class inline with definition or at end of file? (1 个回答) 关闭 2 年
据我了解,以下是相同的: Person p{}; // Case 1 Person p = {}; // Case 1.5 我注意到 Person p = Person{}; // Case 2 产生
below i have given a javascript code picture `` can any one help me in this code. what do this code.
我想在标题和正文上搜索全文,并在答案计数上进行过滤。 我阅读了elasticsearch documentation for combining filters并构建了此查询。 "query": {
它是流动的 C 代码中的内存泄漏吗? #include int *a; int main() { a = malloc(sizeof(int)*10); return
这两个声明有什么区别: char (*ptr)[N]; 对比 char ptr[][N]; 谢谢。 最佳答案 (1)声明 char (*ptr)[N]; ptr 是指向大小为 N 的字符数组的指针 下
data II = I Int Int deriving (Show) instance II Show where show I a b = show (a+b) showt.hs:3:2: s
我从 clojuredoc 中阅读了关于 condp 的文档。在文档中我找到了以下代码: (condp 一些 [1 2 3 4] #{0 6 7} :>> 公司 #{4 5 9} :>> 十二月 #{
我是一名优秀的程序员,十分优秀!