Hi team, I'm having trouble integrating a triggered task with Slack's API given they require a 200 response within 3 seconds. My pipeline is taking too long to return it. I saw mention of asnc here - does anyone have experience setting that up? It's not really working for me
Hi Milo P., I use asynchronous execution on several projects. It does not make your execution quicker, but rather provides a swift answer to the trigger and continues on pipeline execution. The caller shall use the initial answer to get a job ID, and trigger another pipeline with this ID to get the actual execution output. Concerning the overall execution time: using a Groundplex and not using Ultra Pipelines, I see that pipeline startup time is always some seconds (to be compared with execution time, which may be below 100ms).
I'd say that it looks pretty close to the docs; here is a screenshot of how my top-level pipelines are. In red is the immediate response to the caller, with just the pipe.rootRuuid value; in green is the write of current status to database, that occurs regularly during the pipeline execution. On caller's point of view, this means: a first call trigger the overall execution and provides an ruuid, then regular calls shall be performed to another getStatus pipeline, with this ruuid, to retrieve execution status. Of course, these regular status calls may answer with whatever is needed in your use case 🙂
but Milo P. you need a way to tell Slack to come back later to retrieve the final result; perhaps by first returning a 201 Created with a Location: {getStatus URL}?ruuid={ruuid} header, then in the getStatus pipeline by returning successive 202 Accepted until a final 200 OK when treatment completes?
