fix: change tasks table schema

replace required with required_by
change meaning of field
This commit is contained in:
Vincent Riquer 2025-01-28 22:54:09 +01:00
parent 5f9bd027f3
commit ba459feb90
9 changed files with 51 additions and 25 deletions

2
atom
View File

@ -429,7 +429,7 @@ echo '
CREATE TEMPORARY TABLE tasks( CREATE TEMPORARY TABLE tasks(
id INTEGER PRIMARY KEY, id INTEGER PRIMARY KEY,
requires INTEGER, requires INTEGER,
required INTEGER, required_by INTEGER DEFAULT 0,
status INTEGER NOT NULL, status INTEGER NOT NULL,
key TEXT UNIQUE, key TEXT UNIQUE,
rename_pattern TEXT, rename_pattern TEXT,

View File

@ -165,6 +165,12 @@ decodeFile() {
Select tasks id <<<"key = $tmpfile" Select tasks id <<<"key = $tmpfile"
) )
then then
parent_required=$(
Select tasks required_by \
<<<"id = $decodetaskid"
)
Update tasks required_by $((++parent_required)) \
<<<"id = $decodetaskid"
soxtaskid=$( soxtaskid=$(
Insert tasks <<-EOInsert Insert tasks <<-EOInsert
key $tmpfile key $tmpfile
@ -176,7 +182,6 @@ decodeFile() {
done done
) )
requires $decodetaskid requires $decodetaskid
required $decodetaskid
status 0 status 0
cleanup $cleanup cleanup $cleanup
EOInsert EOInsert

View File

@ -52,7 +52,6 @@ encodeFile::mp3() {
Insert tasks <<-EOInsert Insert tasks <<-EOInsert
key ${fileid}lame$destination key ${fileid}lame$destination
requires ${soxtaskid:-$decodetaskid} requires ${soxtaskid:-$decodetaskid}
required ${soxtaskid:-$decodetaskid}
fileid $destfileid fileid $destfileid
filename $destdir/$destfile.mp3 filename $destdir/$destfile.mp3
$( $(
@ -74,6 +73,12 @@ encodeFile::mp3() {
ascii ${destinationascii["$destination"]} ascii ${destinationascii["$destination"]}
EOInsert EOInsert
) )
parent_required=$(
Select tasks required_by \
<<<"id = ${soxtaskid:-$decodetaskid}"
)
Update tasks required_by $((++parent_required)) \
<<<"id = ${soxtaskid:-$decodetaskid}"
progressSpin progressSpin
soxtaskid='' soxtaskid=''
} }

View File

@ -20,7 +20,6 @@ encodeFile::opus() {
Insert tasks <<-EOInsert Insert tasks <<-EOInsert
key ${fileid}opusenc$destination key ${fileid}opusenc$destination
requires ${soxtaskid:-$decodetaskid} requires ${soxtaskid:-$decodetaskid}
required ${soxtaskid:-$decodetaskid}
fileid $destfileid fileid $destfileid
filename $destdir/$destfile.opus filename $destdir/$destfile.opus
$( $(
@ -42,6 +41,12 @@ encodeFile::opus() {
ascii ${destinationascii["$destination"]} ascii ${destinationascii["$destination"]}
EOInsert EOInsert
) )
parent_required=$(
Select tasks required_by \
<<<"id = ${soxtaskid:-$decodetaskid}"
)
Update tasks required_by $((++parent_required)) \
<<<"id = ${soxtaskid:-$decodetaskid}"
progressSpin progressSpin
soxtaskid='' soxtaskid=''
} }

View File

@ -16,7 +16,6 @@ encodeFile::vorbis() {
Insert tasks <<-EOInsert Insert tasks <<-EOInsert
key ${fileid}oggenc$destination key ${fileid}oggenc$destination
requires ${soxtaskid:-$decodetaskid} requires ${soxtaskid:-$decodetaskid}
required ${soxtaskid:-$decodetaskid}
fileid $destfileid fileid $destfileid
filename $destdir/$destfile.ogg filename $destdir/$destfile.ogg
$( $(
@ -38,6 +37,12 @@ encodeFile::vorbis() {
ascii ${destinationascii["$destination"]} ascii ${destinationascii["$destination"]}
EOInsert EOInsert
) )
parent_required=$(
Select tasks required_by \
<<<"id = ${soxtaskid:-$decodetaskid}"
)
Update tasks required_by $((++parent_required)) \
<<<"id = ${soxtaskid:-$decodetaskid}"
progressSpin progressSpin
soxtaskid='' soxtaskid=''
} }

View File

@ -4,7 +4,6 @@ gettaskinfos() {
SELECT SELECT
id, id,
source_file, source_file,
required,
cleanup, cleanup,
fileid, fileid,
filename filename
@ -16,8 +15,6 @@ gettaskinfos() {
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::" rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
sourcefileid=${rest%%::AtOM:SQL:Sep::*} sourcefileid=${rest%%::AtOM:SQL:Sep::*}
rest=${rest#*::AtOM:SQL:Sep::} rest=${rest#*::AtOM:SQL:Sep::}
required=${rest%%::AtOM:SQL:Sep::*}
rest=${rest#*::AtOM:SQL:Sep::}
cleanup=${rest%%::AtOM:SQL:Sep::*} cleanup=${rest%%::AtOM:SQL:Sep::*}
rest=${rest#*::AtOM:SQL:Sep::} rest=${rest#*::AtOM:SQL:Sep::}
destfileid=${rest%%::AtOM:SQL:Sep::*} destfileid=${rest%%::AtOM:SQL:Sep::*}

View File

@ -1,5 +1,9 @@
#!/bin/bash #!/bin/bash
checkworkers() { checkworkers() {
local \
taskid \
parent_required \
parent_task
for key in ${!workers[@]} for key in ${!workers[@]}
do do
if ! kill -0 ${workers[key]} 2>/dev/null if ! kill -0 ${workers[key]} 2>/dev/null
@ -14,6 +18,19 @@ checkworkers() {
failedtasks+=($taskid) failedtasks+=($taskid)
(( ++failed )) (( ++failed ))
fi fi
parent_task=$(
Select tasks requires \
<<<"id = $taskid"
)
if (( parent_task ))
then
parent_required=$(
Select tasks required_by \
<<<"id = $parent_task"
)
Update tasks required_by $((--parent_required)) \
<<<"id = $parent_task"
fi
unset workertasks[key] unset workertasks[key]
fi fi
done done

View File

@ -1,26 +1,23 @@
#!/bin/bash #!/bin/bash
cleaner() { cleaner() {
local \
key \
faildepends \
taskid \
count
for key in ${!failedtasks[@]} for key in ${!failedtasks[@]}
do do
taskid=${failedtasks[key]} taskid=${failedtasks[key]}
gettaskinfos $taskid gettaskinfos $taskid
faildepends=$( faildepends=$(
Select tasks 'COUNT(*)' <<-EOWhere Select tasks required_by <<-EOWhere
requires = $taskid id = $taskid
EOWhere EOWhere
) )
(( failed+=faildepends )) (( failed+=faildepends ))
(( ran+=faildepends )) (( ran+=faildepends ))
Update tasks status 2 <<<"id = $taskid" Update tasks status 2 <<<"id = $taskid"
echo "SELECT COUNT(*) rm -f "$cleanup"
FROM tasks
WHERE ( status = 0 OR status = 1 )
AND required = $taskid;">&3
read -u4 count
if (( count == 0 ))
then
rm -f "$cleanup"
fi
unset failedtasks[key] unset failedtasks[key]
done done
for key in ${!finishedtasks[@]} for key in ${!finishedtasks[@]}
@ -60,11 +57,7 @@ cleaner() {
"WHERE id=$destfileid;" \ "WHERE id=$destfileid;" \
>&3 >&3
fi fi
echo "SELECT COUNT(*) count=$(Select tasks required_by <<<"id = $taskid")
FROM tasks
WHERE ( status = 0 OR status = 1 )
AND required = $taskid;">&3
read -u4 count
if (( count == 0 )) if (( count == 0 ))
then then
rm -f "$cleanup" rm -f "$cleanup"

View File

@ -17,7 +17,6 @@ master() {
SELECT SELECT
id, id,
source_file, source_file,
required,
cmd_arg0, cmd_arg0,
cmd_arg1, cmd_arg1,
cmd_arg2, cmd_arg2,