2017/10/23 [長年日記]
_ [SQL]sqlite3 でどんどん溜め込んでいるファイルへのアクセスで "database is locked"
Tick STREAM データを取得して各足を作成し sqlite3 DB へ保存しているけど、 そのファイルに対して別のシェルスクリプトから”直近の1分足" を読み込もうとしたら "database is locked" エラーが発生している (+_+) 頻度は10日くらいに1回くらいかな。
色々とググってみたところ、原因は「書き込み処理中に別処理の要求が来たけど timeout した」 と推測される。
シェルスクリプトから読み込みを掛けているので、こちらの timeout を引き伸ばせないかと 色々とググって見たところ、sqlite3 のコマンド引数で指定できそうだ。(!_!)
とりあえずスクリプトに仕込んでみた。timeout はミリ秒指定。
sqlite3 -cmd ".timeout 3000" -column USDJPYm1.db 'select date,time,close from hd where id=(select max(rowid) from hd)'
これでしばらく様子見してみよう (^-^)/
参考にさせていただいたサイト: