|
двойной вызов функции на добавление данных
|
|||
---|---|---|---|
#18+
Добрый день суть проблемы: В конце дня запускается функция, которая рассчитывает статистику по прошедшему дню, и кладет ее в таблицу. Причем функция удаляет все предыдущие данные статистики за текущий день (что бы избежать дублей) но! бывает, что вызов этой функции задваивается (вызывается 2 раза почти одновременно), в результате появляются дубли в таблице и совсем странно то, что могут продублироваться не все записи схема работы веб клиент-> pgbouncer->postgresql функция для сбора статистики: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
в итоге в таблице могут появиться такие записи: "id" "smena" "worker" "action" "smm" "org" "11215463" "98686" "6577" "6" "2544" "741" "11215787" "98686" "6577" "6" "2544" "741" Понимаю что есть варианты решения: поправить вызов функции, что бы 2 раза не вызывал, настроить индекс, что бы не создавались дубли, но хотелось бы решить эту проблему на уровне функции, что то можно сделать? спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 10:31 |
|
двойной вызов функции на добавление данных
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 11:20 |
|
двойной вызов функции на добавление данных
|
|||
---|---|---|---|
#18+
Посмотрите на SERIALIZABLE: https://www.postgresql.org/docs/current/static/transaction-iso.html#XACT-SERIALIZABLE ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 20:48 |
|
|
start [/forum/topic.php?fid=53&fpage=57&tid=1995846]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 418ms |
0 / 0 |