Compare commits

..

3 Commits

Author SHA1 Message Date
Vincent Riquer
485f1c7f50 fix: On inconsistency, COMMIT before closing database 2025-01-28 23:29:19 +01:00
Vincent Riquer
60d259b200 fix: file cleanup 2025-01-28 23:28:11 +01:00
Vincent Riquer
9b8113fdff fix: use required_by, check child task status 2025-01-28 23:26:50 +01:00
6 changed files with 121 additions and 18 deletions

View File

@ -153,13 +153,13 @@ decodeFile() {
done
)
status 0
cleanup $tmpfile.wav
EOInsert
)
progressSpin
fi
if (( sox_needed ))
then
cleanup="$tempdir/$tmpfile"
decodeSox "$tempdir/$tmpfile.wav"
if ! soxtaskid=$(
Select tasks id <<<"key = $tmpfile"
@ -183,7 +183,7 @@ decodeFile() {
)
requires $decodetaskid
status 0
cleanup $cleanup
cleanup $tmpfile.wav
EOInsert
)
progressSpin

View File

@ -65,7 +65,6 @@ encodeFile::mp3() {
echo "cmd_arg$key $cleanedopts"
done
)
cleanup $tempdir/$tmpfile.wav
source_file $fileid
status 0
rename_pattern ${destinationrenamepath[$destination]}/${destinationrename[$destination]}

View File

@ -33,7 +33,6 @@ encodeFile::opus() {
echo "cmd_arg$key $cleanedopts"
done
)
cleanup $tempdir/$tmpfile.wav
source_file $fileid
status 0
rename_pattern ${destinationrenamepath[$destination]}/${destinationrename[$destination]}

View File

@ -29,7 +29,6 @@ encodeFile::vorbis() {
echo "cmd_arg$key ${oggencopts[key]}"
done
)
cleanup $tempdir/$tmpfile.wav
source_file $fileid
status 0
rename_pattern ${destinationrenamepath[$destination]}/${destinationrename[$destination]}

View File

@ -60,9 +60,12 @@ cleaner() {
count=$(Select tasks required_by <<<"id = $taskid")
if (( count == 0 ))
then
rm -f "$cleanup"
fi
[[ -n "$cleanup" ]] && rm -f "$tempdir/$cleanup"
Delete tasks <<<"id = $taskid"
unset finishedtasks[key]
else
Update tasks status 4 \
<<<"id = $taskid"
fi
done
}

View File

@ -8,7 +8,112 @@ master() {
SELECT COUNT(*)
FROM tasks
WHERE status = 0;
'>&3
read -u4 remaining
if (( remaining == 0 ))
then
sleep 0.1
return 0
fi
echo '
SELECT COUNT(*)
FROM tasks
WHERE status = 0
AND requires IN (
SELECT id
FROM tasks
WHERE status = 4
);
SELECT
id,
source_file,
cmd_arg0,
cmd_arg1,
cmd_arg2,
cmd_arg3,
cmd_arg4,
cmd_arg5,
cmd_arg6,
cmd_arg7,
cmd_arg8,
cmd_arg9,
cmd_arg10,
cmd_arg11,
cmd_arg12,
cmd_arg13,
cmd_arg14,
cmd_arg15,
cmd_arg16,
cmd_arg17,
cmd_arg18,
cmd_arg19,
cmd_arg20,
cmd_arg21,
cmd_arg22,
cmd_arg23,
cmd_arg24,
cmd_arg25,
cmd_arg26,
cmd_arg27,
cmd_arg28,
cmd_arg29,
cmd_arg30,
cmd_arg31,
cmd_arg32,
cmd_arg33,
cmd_arg34,
cmd_arg35,
cmd_arg36,
cmd_arg37,
cmd_arg38,
cmd_arg39,
cmd_arg40,
cmd_arg41,
cmd_arg42,
cmd_arg43,
cmd_arg44,
cmd_arg45,
cmd_arg46,
cmd_arg47,
cmd_arg48,
cmd_arg49,
cmd_arg50,
cmd_arg51,
cmd_arg52,
cmd_arg53,
cmd_arg54,
cmd_arg55,
cmd_arg56,
cmd_arg57,
cmd_arg58,
cmd_arg59,
cleanup,
fileid,
filename
FROM tasks
WHERE status = 0
AND requires IN (
SELECT id
FROM tasks
WHERE status = 4
ORDER BY source_file
/* LIMIT 1 */
)
ORDER BY source_file
LIMIT 1;
'>&3
read -u4 ready
if (( ready > 0 ))
then
createworker
return 0
fi
echo '
SELECT COUNT(*)
FROM tasks
WHERE status = 0
@ -86,15 +191,12 @@ master() {
ORDER BY source_file
LIMIT 1;
' >&3
read -u4 remaining
read -u4 ready
if (( remaining == 0 ))
if (( active == 0 && ready == 0 ))
then
sleep 0.1
return 0
elif (( active == 0 && ready == 0 ))
then
dumpfile="$tmpdir/tasks-$(date -Iseconds).csv"
dumpfile="$tempdir/tasks-$(date -Iseconds).csv"
cat <<-EOF
@ -110,6 +212,7 @@ master() {
.mode list
.headers off
.output stdout
COMMIT;
EOSQL
closeDatabase
echo "Waiting for children to come back home..."