2010-03-16 2 views
1

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

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

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

Спасибо!

ответ

1

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

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

6

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