簡體   English   中英

保持Sqlite3數據庫忙

[英]Keeping Sqlite3 Database Busy

我在我的項目中使用Sqlite3數據庫。 出於測試目的,我需要讓數據庫保持很長時間。 怎么實現呢? 是否有命令或腳本我可以寫一個保持數據庫忙。

有人可以幫忙嗎?

當存在一些活動事務時,數據庫正忙。

要強制執行某些事務,只需執行BEGIN EXCLUSIVE即可 這可以從您的程序完成,或者只需從sqlite3命令行shell手動完成:

$ sqlite3 /some/where/mydatabase.db
SQLite version 3.8.5 2014-06-04 14:06:34
Enter ".help" for usage hints.
sqlite> BEGIN EXCLUSIVE;
sqlite> -- the DB is now locked ...
sqlite> COMMIT;

鑒於這是出於測試目的 ,一種方法是讓線程不斷插入數據庫。 然后你將使用另一個線程來進行閱讀。 我可以看到它在junit中以下面的方式(使用偽代碼)完成:

@Before
public void setup(){
    //start thread for inserting
}

@After
public void destroy(){
    //stop thread for inserting
}

@Test
public void testRead(){
    //do the test for reading
}

以上將使數據庫在每次測試期間保持忙碌。 您可以使用單獨的應用程序插入定義的時間限制。 這將以這種方式完成:

public static void main(String [] args){
//mark startTime
//while currentTime - startTime < timeLimit (in milliseconds)
//insert into db
}

我不明白的問題部分是:

  • 你為什么想做這個? - 您是在測試事務性還是在測試數據庫連接?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM