I ran into this issue lately.
I am running JSReport 3.7.1 in docker and with fs store.
I have a scheduled report that takes takes in beforeRender more than 10 seconds to run.
After 10 seconds jsreports starts recovering the currently running job and hell breaks loose. Seems that the ping-routine in the code is not behaving correctly.
I checked the ping timestamp in the /app/data/tasks file and it seems that this is not updated at start of the scheduler run (at least not on the disk). And that is why it is not seeing the ping.
I worked around this is issue by setting unconfigured config parameter (found in code):
"extensions": {
"scheduling": {
"taskPingTimeout" : 3600000
}
}
This will give enough time for the task to finish before it is trying to be recovered.