first tried in sql to find jobs with the sql statement
and the change the status if it not stop
you can/should add more WHERE statement to narrow your scan
SELECT
tis.TaskInstanceGuid AS [Task Instance Guid],
itm.Name AS [Task Name],
itm.Guid AS [Task Guid],
ist.InstanceStatus AS [Instance Status],
tip.ParentTaskInstanceGuid AS [Parent Task Instance Guid],
tis.ResourceGuid AS [Resource Guid],
itr.Name AS [Resource Name],
tis.TaskVersionGuid AS [Task Version Guid],
ivd.State AS [State],
tis.InstanceType AS [Instance Type],
ivs.Version AS [Version],
tst.StartTime AS [Start Time],
tir.EndTime AS [End Time],
tir.Result AS [Result]
FROM
TaskInstances tis
LEFT OUTER JOIN ItemVersions ivs ON ivs.VersionGuid = tis.TaskVersionGuid
LEFT OUTER JOIN ItemVersionData ivd ON ivd.VersionGuid = tis.TaskVersionGuid
LEFT OUTER JOIN vItem itm ON itm.Guid = ivs.ItemGuid
LEFT OUTER JOIN vItem itr ON itr.Guid = tis.ResourceGuid
LEFT OUTER JOIN TaskInstanceStatus ist ON ist.TaskInstanceGuid = tis.TaskInstanceGuid
LEFT OUTER JOIN TaskInstancesStarted tst ON tst.TaskInstanceGuid = tis.TaskInstanceGuid
LEFT OUTER JOIN TaskInstanceResults tir ON tir.TaskInstanceGuid = tis.TaskInstanceGuid
LEFT OUTER JOIN TaskInstanceParents tip ON tip.TaskInstanceGuid = tis.TaskInstanceGuid
WHERE
ist.InstanceStatus = 0 OR ist.InstanceStatus = 1 -- NotStarted = 0 OR Started = 1
-- ist.InstanceStatus = 2 -- The task has completed successfully
or ist.InstanceStatus = 3 -- The task has failed
-- ist.InstanceStatus = 4 -- The task has been told to stop
ORDER BY
itm.Name, ist.InstanceStatus