Просто в конце работы, при успешном завершении, при увеличении значения, подгрузить блоком одной записи из базы новое значение строки и сохранить его в базу, увеличив.
Так и сделал, но почему то это значение работает криво и то уменьшается, то резко растет по не понятным причинам.
Это должно работать корректно, возможно вы забыли про приведение типов, тк получая из БД число от все равно приходит как строка и может получиться такой результат например "1" + 1 = "11"
@CaptchaLom, можно. Либо сразу запустить несколько потоков и в каждом периодически чекать базу на предмет подходящей строки, а когда появится, то нашедший её поток забирает её в работу (нужно знать сколько максимум таких строк появится и заранее запустить нужное количество потоков). Либо через один сервисный поток и "функцию в несколько потоков", но тут я не уверен. Не знаю, можно ли там к запущенной функции добавлять новые потоки.