GitHub user YongGoose added a comment to the discussion: Enhancing Transaction 
Handling for TimeoutRollbacked and Rollbacked States

Hasn’t `SessionHelper.endCommitted` already been written in this PR?
- https://github.com/apache/incubator-seata/pull/7133

If it’s not just calling `SessionHelper.endRollback` immediately but calling it 
after a certain period of time, I think it would be a good idea to use a 
separate thread to create a scheduled task.

code snippet example :
```java
public static void scheduleEndTransactions() {
    scheduler.scheduleAtFixedRate(() -> {
        try {
            Collection<GlobalSession> endSessions = getEndSessions();

            for (GlobalSession session : endSessions) {
                if (session.getStatus() == GlobalStatus.Committed) {
                    SessionHelper.endCommitted(session, false);
                } else if (session.getStatus() == GlobalStatus.Rollbacked) {
                    SessionHelper.endRollbacked(session, false);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }, 0, 1, TimeUnit.MINUTES);
}
```

If that’s not the case, I’d love to know what additional work I need to do.

I really want to contribute to Seata’s transaction management logic, but since 
I’m still not very familiar with the project, it’s a bit challenging. 😅

GitHub link: 
https://github.com/apache/incubator-seata/discussions/7146#discussioncomment-12114282

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to