powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пропустить уже считанную строку
20 сообщений из 20, страница 1 из 1
Пропустить уже считанную строку
    #39804944
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть вебсервис, на который приходят http запросы
если строка принята в обработку одним запросом, то другой запрос ее не должен читать

просто лочить не желательно, иначе другие будут ждать

как правильно сделать?
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39804951
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И при чем тут MSSQL?
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39804954
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичИ при чем тут MSSQL?
средствами СУБД хотелось бы сделать
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39804957
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoviewГавриленко Сергей АлексеевичИ при чем тут MSSQL?
средствами СУБД хотелось бы сделать

и как связана СУБД с приходящими http-запросами?
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39804961
Rankatan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с помощью READPAST это делается
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39804964
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетительlisttoviewпропущено...

средствами СУБД хотелось бы сделать

и как связана СУБД с приходящими http-запросами?
попытался описать задачу
а то потом бы все равно спросили, "а зачем вам это?"
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39804965
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rankatanс помощью READPAST это делается
спасибо читаю
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805049
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoview,

можно так:
1. Открыть транзакцию клиентом.
2. Обновить в таблице блокировок поле-флаг в нужной строке =1.
3. Обработать данные.
4. Сбросить флаг =0.
5. Зафиксировать транзакцию клиентом.

Другим процессом читать таблицу блокировок с READPAST, он обновленную строку не увидит и чтение не остановится.
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805069
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовlisttoview,

можно так:
1. Открыть транзакцию клиентом.
2. Обновить в таблице блокировок поле-флаг в нужной строке =1.
3. Обработать данные.
4. Сбросить флаг =0.
5. Зафиксировать транзакцию клиентом.

Другим процессом читать таблицу блокировок с READPAST, он обновленную строку не увидит и чтение не остановится.

единственно только надо уточнить что c READPAST подсказкой надо правильно проектировать читающий запрос что бы попадал на блокированные ресурсы, а то может получиться что читать будет строки которые по факту не должен.
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805148
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoviewесть вебсервис, на который приходят http запросы
если строка принята в обработку одним запросом, то другой запрос ее не должен читать

просто лочить не желательно, иначе другие будут ждать

как правильно сделать?а эти два запроса приходят одновременно?
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805149
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что должен делать второй запрос? Ждать то не должен. Вываливаться? Ошибку генерить?
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805204
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxА что должен делать второй запрос? Ждать то не должен. Вываливаться? Ошибку генерить?
второй запрос должен читать еще не обработанную никем строку
желательно не ждать, и, желательно, не отваливаться с ошибкой
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805205
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxlisttoviewесть вебсервис, на который приходят http запросы
если строка принята в обработку одним запросом, то другой запрос ее не должен читать

просто лочить не желательно, иначе другие будут ждать

как правильно сделать?а эти два запроса приходят одновременно?
да, это вебсервис по REST
они могут одновременно и в большом кол-ве приходить
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805210
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

есть идея добавить таблицу с PK
и инсертить туда Id обрабатываемой записи
кому повезет, тот и будет обрабатывать
тот кто упал с ошибкой, повторит попытку
ну и добавить поле InProcessing

ДедаЪ осоветовал)

конечно не идеальный вариант из-за эксепшена
но ИМХО рабочий
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805214
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получается
нужно что бы читатель блокировал и читателей и писателей
и другие читатели и писатели его не ждали
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805221
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если упростить
listtoviewполучается
нужно что бы читатель блокировал читателей
и другие читатели его не ждали
о как...


READPAST уже сказали, что не подходит
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805222
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoviewполучается
нужно что бы читатель блокировал и читателей и писателей
и другие читатели и писатели его не ждали
Код: sql
1.
select ... from MyTable with (updlock, readpast)
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805230
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmlisttoviewполучается
нужно что бы читатель блокировал и читателей и писателей
и другие читатели и писатели его не ждали
Код: sql
1.
select ... from MyTable with (updlock, readpast)


и update в этом же запросе нужно
что бы повторные запросы не пытались его снова прочитать
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805231
listtoview
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. пометимть строку что она уже обработана и больше никогда к ней не возвращаться
...
Рейтинг: 0 / 0
Пропустить уже считанную строку
    #39805233
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
listtoviewи update в этом же запросе нужно
что бы повторные запросы не пытались его снова прочитать
Код: sql
1.
update MyTable with (readpast) set ... output ...
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пропустить уже считанную строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]