|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
Коллеги, добрый день! Подскажите пожалуйста, как в многопользовательском режиме реализовать отправку письма только 1 раз (от любого пользователя) Столкнулся с тем, что письмо было отправлено 2 раза, т.е. дважды (одновременно) отработала процедура CreateMsgInOutlook_everyday На постоянно открытой форме (таймер = 30 секунд) сделал вот такую проц-ру: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Буду благодарен за любую помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 13:22 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
-SWAN-письмо было отправлено 2 раза, т.е. дважды (одновременно) отработала процедура CreateMsgInOutlook_everyday Непонятно, отработала ли процедура дважды в одном экземпляре приложения или в разных. Если в одном - то с такой ситуацией надо бороться выставлением флага (статического или глобального) вызова процедуры и исключать повторный вызов до завершения первого. Если в разных - то в таблицу, где фиксируются заявки на отправку и факт отправки, следует ввести поле резервирования записи на отправку за собой, и только если такая попытка удачна, выполнять отправку. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 14:46 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
Akina, сам файл .accdb лежит в сетевой папке. Письмо пришло от 2-х разных пользователей. Т.е. одновременно у 2-х пользователей отработало условие IF и соответственно дважды отработала sub CreateMsgInOutlook_everyday ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 15:01 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
Ну так введи в структуру таблицы заявок на отправку поле отправителя. Соответственно в коде сначала выполняется попытка резервирования письма за собой Код: sql 1. 2. 3.
и для тех записей, для которых резервирование оказалось удачным Код: sql 1. 2. 3.
выполняется отправка. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 15:19 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
Akina, спасибо! Но немного не то( мне просто надо чтобы одновременно не запускалась процедура Добавил в код вот это (думаю что поможет): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 15:28 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
AkinaНепонятно, отработала ли процедура дважды в одном экземпляре приложения или в разных.А тебе-то понятно? или тоже нет? -SWAN-Добавил в код вот это (думаю что поможет)Интересно, что же позволило сделать подобное (как по мне - совершенно безосновательное) предположение? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 15:41 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
Akina, проверить свой вариант смогу только в ПН. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 15:46 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
AkinaНепонятно, отработала ли процедура дважды в одном экземпляре приложения или в разных. Все пользователи открывают один файл, лежащий в сетевой папке - это один экземпляр или несколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 16:48 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
-SWAN-Все пользователи открывают один файл, лежащий в сетевой папке Вообще лучше так не делать - увеличивается сетевой трафик и повышается опасность повреждения файла. Лучше на сетевом диске иметь "образец", а пользователи запускают скрипт или какое-либо другое решение, которое проверяет версию файла, обновляет локальную копию пользователя в случае необходимости и запускается уже обновленная локальная копия. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 17:03 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
-SWAN-Все пользователи открывают один файл, лежащий в сетевой папке - это один экземпляр или несколько?А я доктор? У тебя единица отличия - адрес электронной почты, от которого выполняется отправка, верно? Вот исходя из этого и думай, один у тебя экземпляр или несколько... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 17:12 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
MrShin-SWAN-Все пользователи открывают один файл, лежащий в сетевой папке Вообще лучше так не делать - увеличивается сетевой трафик и повышается опасность повреждения файла. Лучше на сетевом диске иметь "образец", а пользователи запускают скрипт или какое-либо другое решение, которое проверяет версию файла, обновляет локальную копию пользователя в случае необходимости и запускается уже обновленная локальная копия. я правильно понимаю - надо разделить базу на таблицы и все остальное? и положить таблицы в сетевую папку а все остальное - раздать всем пользователям? Вы такой вариант имеете ввиду? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 17:43 |
|
Как в многопользовательском режиме реализовать отправку письма только 1 раз?
|
|||
---|---|---|---|
#18+
Разделение БД действительно упростит и ускорит работу - главным образом за счёт того, что файл-кэш станет локальным. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2016, 19:15 |
|
|
start [/forum/topic.php?fid=45&msg=39302412&tid=1613204]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 141ms |
0 / 0 |