It should be possible to enqueue and task and claim it in a single transaction such that the process enqueuing the task can also execute it while relying on the rest of the infrastructure (logging, state reporting, async polling, ui tied to aforementioned, etc) as long running tasks.
The reasoning, aside from shared code is that some tasks are known to be short and queue delay could look ugly to end users. Imagine I upload a file for you to process. If it's 1GB, I expect to wait for it to be processed. If it's 5 lines, I think less of you whilst I watch a spinner...
It should be possible to enqueue and task and claim it in a single transaction such that the process enqueuing the task can also execute it while relying on the rest of the infrastructure (logging, state reporting, async polling, ui tied to aforementioned, etc) as long running tasks.
The reasoning, aside from shared code is that some tasks are known to be short and queue delay could look ugly to end users. Imagine I upload a file for you to process. If it's 1GB, I expect to wait for it to be processed. If it's 5 lines, I think less of you whilst I watch a spinner...