SQLite как очередь приложений, эксклюзивная блокировка строк? - PullRequest
1 голос
/ 16 марта 2010

Я подумывал об использовании SQLite в качестве «контейнера очереди заданий», и мне было интересно, как я могу это сделать, используя пользовательский C # (с ADO.NET) для работы с базой данных.

Если бы это был SQL Server, я бы настроил сериализуемую транзакцию, чтобы убедиться, что родительская и дочерняя строки были исключительно моими, пока я не закончил. Я не уверен, как это будет работать в SQLite, кто-нибудь может предложить какую-либо помощь?

Или, если есть какие-либо другие существующие реализации очереди сообщений с SQLite, я был бы признателен за любые указатели в этом направлении.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 16 марта 2010

SQLite блокирует весь файл для операций записи. Выполняйте ваши записи внутри транзакции, и никто другой не сможет прикоснуться к какой-либо таблице в базе данных, пока ваша транзакция не завершится.

1 голос
/ 16 марта 2010

Что из вашего опыта работы с MS SQL вы можете сделать в SQLite? sqlite имеет хорошую оболочку, поэтому классы такие же, но начинаются с Sqlite (например, SqliteConnection). У него есть некоторые отличия, но они просты в обращении.

Так в чем же проблема с использованием sqlite в качестве очереди? в очереди вы вставляете строку, в очереди вы выбираете строку с максимальным идентификатором, а затем удаляете.

...