Optimisation des requete sqlite afin d'eviter les database is locked
This commit is contained in:
parent
960674c2f3
commit
005e309072
@ -30,13 +30,13 @@ checkusenet(){
|
|||||||
|
|
||||||
cd ${DOSSIER_GLOBAL}
|
cd ${DOSSIER_GLOBAL}
|
||||||
|
|
||||||
|
|
||||||
while true
|
while true
|
||||||
do
|
do
|
||||||
verif=$(sqlite3 $DB_FILE "SELECT COUNT(ID) FROM release WHERE status = 0")
|
verif=$(sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; SELECT id, nom FROM release WHERE status = 0 LIMIT 1; COMMIT;")
|
||||||
if [ $verif -ge 1 ]; then
|
if [ -n "$verif" ]; then
|
||||||
verif=$(sqlite3 $DB_FILE "SELECT * FROM release WHERE status = '0' LIMIT 1")
|
id=$(echo "$verif" | awk -F "|" '{print $1}' | sed 's/^[ \t]*//;s/[ \t]*$//')
|
||||||
id=$(echo $verif | awk -F "|" '{ print $1 }' | sed 's/^[ \t]*//;s/[ \t]*$//')
|
name=$(echo "$verif" | awk -F "|" '{print $2}' | sed 's/^[ \t]*//;s/[ \t]*$//')
|
||||||
name=$(echo $verif | awk -F "|" '{ print $2 }' | sed 's/^[ \t]*//;s/[ \t]*$//')
|
|
||||||
FILESANSEXT=${name%.*}
|
FILESANSEXT=${name%.*}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -60,7 +60,7 @@ do
|
|||||||
if [[ ${nzbsizebit} -le ${jsonsizebit} ]] || [[ ${nzbsizebit} = "NAN" ]]; then
|
if [[ ${nzbsizebit} -le ${jsonsizebit} ]] || [[ ${nzbsizebit} = "NAN" ]]; then
|
||||||
echo -e "$ROUGE""PROBLEME TAILLE NZB""$NORMAL"
|
echo -e "$ROUGE""PROBLEME TAILLE NZB""$NORMAL"
|
||||||
rm ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${FILESANSEXT}.par2 ${FILESANSEXT}.vol*
|
rm ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${FILESANSEXT}.par2 ${FILESANSEXT}.vol*
|
||||||
sqlite3 $DB_FILE "UPDATE release SET status = '2' WHERE id = ${id}"
|
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; UPDATE release SET status = 2 WHERE id = ${id}; COMMIT;"
|
||||||
else
|
else
|
||||||
echo -e ${CYAN}"ENVOI SUR LE SITE"${NORMAL}
|
echo -e ${CYAN}"ENVOI SUR LE SITE"${NORMAL}
|
||||||
curl -s -k -L -m 60 --output /dev/null -F rlsname=${FILESANSEXT} -F generated_nfo_json=@${DOSSIER_NFO}${FILESANSEXT}.json -F nzb=@${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb -F upload=upload "${URL_API}${APIKEY}"
|
curl -s -k -L -m 60 --output /dev/null -F rlsname=${FILESANSEXT} -F generated_nfo_json=@${DOSSIER_NFO}${FILESANSEXT}.json -F nzb=@${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb -F upload=upload "${URL_API}${APIKEY}"
|
||||||
@ -71,7 +71,7 @@ do
|
|||||||
mv ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${DOSSIER_NZB_FINAL}${first_char}/
|
mv ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${DOSSIER_NZB_FINAL}${first_char}/
|
||||||
rm -rf ${FILESANSEXT}*
|
rm -rf ${FILESANSEXT}*
|
||||||
#rm ${DOSSIER_NFO}${FILESANSEXT}.json
|
#rm ${DOSSIER_NFO}${FILESANSEXT}.json
|
||||||
sqlite3 $DB_FILE "UPDATE release SET status = '1' WHERE id = ${id}"
|
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; UPDATE release SET status = 1 WHERE id = ${id}; COMMIT;"
|
||||||
echo -e ${VERT}"FIN DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
|
echo -e ${VERT}"FIN DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
@ -61,7 +61,8 @@ do_add() {
|
|||||||
# Arrêt du script si "code" vaut 1, en affichant le message "explain"
|
# Arrêt du script si "code" vaut 1, en affichant le message "explain"
|
||||||
if [ "$code" = "2" ]; then
|
if [ "$code" = "2" ]; then
|
||||||
echo -e "$ROUGE""$explain""$NORMAL"
|
echo -e "$ROUGE""$explain""$NORMAL"
|
||||||
sqlite3 "$DB_FILE" "INSERT INTO release (nom, status) VALUES ('${release_name}', 3);"
|
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; INSERT INTO release (nom, status) VALUES ('${release_name}', 3); COMMIT;"
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo -e "$VERT""DEPLACEMENT DE LA RELEASE DANS LE REPERTOIRE DE TRAVAIL""$NORMAL"
|
echo -e "$VERT""DEPLACEMENT DE LA RELEASE DANS LE REPERTOIRE DE TRAVAIL""$NORMAL"
|
||||||
@ -71,7 +72,7 @@ do_add() {
|
|||||||
mediainfo --output=JSON --full "${DOSSIER_GLOBAL}${release_name}" > "${DOSSIER_NFO}${release_without_ext}.json"
|
mediainfo --output=JSON --full "${DOSSIER_GLOBAL}${release_name}" > "${DOSSIER_NFO}${release_without_ext}.json"
|
||||||
|
|
||||||
echo -e "$CYAN""AJOUT DE LA RELEASE DANS LA DATABASE""$NORMAL"
|
echo -e "$CYAN""AJOUT DE LA RELEASE DANS LA DATABASE""$NORMAL"
|
||||||
sqlite3 "$DB_FILE" "INSERT INTO release (nom, status) VALUES ('${release_name}', 0);"
|
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; INSERT INTO release (nom, status) VALUES ('${release_name}', 0); COMMIT;"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,7 +80,7 @@ do_status() {
|
|||||||
checkdb
|
checkdb
|
||||||
|
|
||||||
# Exécuter la requête SQLite et récupérer les résultats dans une variable
|
# Exécuter la requête SQLite et récupérer les résultats dans une variable
|
||||||
results=$(sqlite3 "$DB_FILE" "SELECT nom, status, id FROM (SELECT * FROM release ORDER BY id DESC LIMIT 500) ORDER BY id ASC;")
|
results=$(sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; SELECT nom, status, id FROM (SELECT * FROM release ORDER BY id DESC LIMIT 500) ORDER BY id ASC; COMMIT;")
|
||||||
|
|
||||||
# Trouver la longueur maximale du champ name
|
# Trouver la longueur maximale du champ name
|
||||||
max_length=$(echo "$results" | awk -F'|' '{ if (length($1) > max) max = length($1) } END { print max }')
|
max_length=$(echo "$results" | awk -F'|' '{ if (length($1) > max) max = length($1) } END { print max }')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user