Samuel Colvin
Samuel Colvin
I think `asyncio.TimeoutError` is raised, it's just caught and the job is re-run. If you want to do something different, you might be able to catch it inside the job?
Humm, the the logic I implemented was copied from async-timeout, so I would have expected the behaviour to be the same. Guess I'm wrong...
Oh, missed that. Happy to accept a PR if we can fix it.
yes, we need access to the task to add it to `self.job_tasks`
For stuff like this, it's worth reading the code rather than asking questions, it's relatively clear in the code: https://github.com/samuelcolvin/arq/blob/8ee04f96934684c9b8f8278df0530ae9fad1be4a/arq/worker.py#L520-L535
Humm, I think we should revert this to just log the error, you can always catch the `CancelledError` and raise a retry exception. Would you create a PR?
This can all be achieved now, I've added an example of all the cases you asked about below, let me know if anything is unclear in this example. I'm sure...
@jokull `r1, r2 = await asyncio.gather(j1.result(), j2.result())` is happening inside a job. `parallel` is kind of like a management job that handles the orchestration of other jobs.
yes, it's definitely just sugar coating, but I'd be happy to add it, especially if it doesn't make `workers.py` any more complex.
PR welcome to fix this.