Synchronization of different scripts of the scriptrunner on the global object at jira instance level

Eugene Onegin December 7, 2022

We have a large business process with complex logic in our company. In many places, such as post-functions, listeners, etc., the content of the same page in the confluence is updated.

The page is updated using the REST-API. First, we get the content of the page in storage format (via the REST-API), parse it, add the necessary information from the jira to the content, and then update the content of the page in confluence using the REST request. On the dev server, everything works well, but most likely on the prod server (there, in different tasks that update the page, 100+ people can work, who can potentially change the page from jira at the same time), problems may arise and some data will be lost.

Scriptrunner scripts are run as separate processes, so you can't use standard java tools that use shared memory (lock, etc.) here. Perhaps for synchronization and interprocessor communication it is necessary to use shared files located on the server.

From a suitable atlassian api, I found com.atlassian.jira.util.Lock, which allows you to create a lock on a system file.

Do you have any examples using this class or any other ideas how to get around this problem?

Thanks for the help :)

0 answers

Suggest an answer

Log in or Sign up to answer