Skip to content

Commit

Permalink
delete with transactions work for all languages
Browse files Browse the repository at this point in the history
  • Loading branch information
czhou578 committed Jul 16, 2024
1 parent 40355a1 commit 6002984
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 20 deletions.
36 changes: 17 additions & 19 deletions app/routes/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -153,29 +153,27 @@ router.put("/javascript/update-customer", (_, res) => {
});

router.delete("/javascript/delete-salesorder", (_, res) => {
const deleteSalesOrder = (retries) => {
let sql = "delete from salesorder order by orderId desc limit 1";
let start = performance.now();
const deleteOrder = async () => {
try {
let start = performance.now();

database.query(sql, (error, _) => {
if (error) {
if (error.code === 'ER_LOCK_WAIT_TIMEOUT' && retries > 0) {
console.log(`Lock wait timeout, retrying... (${retries} attempts left)`);
setTimeout(() => deleteSalesOrder(retries - 1), RETRY_DELAY)
} else {
console.error("Database error:", error);
res.status(500).send({ error: "An error occurred while updating the product" })
}
} else {
let end = performance.now();
let sql = "delete from salesorder order by orderId desc limit 1";

res.status(200).send({ resp: "Data successfully deleted!", "Operation Completion Time (ms)": end - start })
}
});
await database.beginTransaction()
await database.query(sql)
await database.commit()
console.log("Transaction committed successfully. Records deleted.");
let end = performance.now();

res.status(200).send({ resp: "Data successfully deleted!", "Operation Completion Time (ms)": end - start })

} catch (error) {
console.error(`Error: ${error.message}`);
}
}

deleteSalesOrder(3)
});
deleteOrder()
})


module.exports = router;
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.lang.String;
import org.springframework.web.bind.annotation.RequestMapping;
Expand Down Expand Up @@ -60,7 +63,9 @@ public Product updateProductName() {
public ResponseEntity<?> deleteSales() {
try {
salesService.deleteLastSalesOrderWithRetry();
return ResponseEntity.ok().body("Last sales order deleted!");
Map<String, String> response = new HashMap<>();
response.put("message", "Last sales order deleted!");
return ResponseEntity.ok().body(response);
} catch (Exception e) {
return ResponseEntity.internalServerError().body("Error deleting last sales");
}
Expand Down
3 changes: 3 additions & 0 deletions python-backend/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,12 @@ def deleteSalesorder():


iterations = request.args.get('iteration')
mydb.start_transaction()

for x in range(int(iterations)):
data = executeDelete()

mydb.commit()

end_time = time.perf_counter()
elapsed_time = end_time - start_time
Expand Down

0 comments on commit 6002984

Please sign in to comment.