nginxkubernetesfaasknative-servingknative

How to increase the execution time for apps served by knative?


We are using knative to serve a nodejs app (with express) that would execute workflows and return back the results of execution. The app would have to execute workflows which could take minutes (if not hours) to finish executing.

After invoking the app, execution stops after a certain time (approximately 14min) with the status: upstream request timeout

We modified the timeout accordingly for express and it seemed to have a slight effect, but not as much as needed. We used the following guide as baseline https://github.com/knative/docs/tree/master/docs/serving/samples/hello-world/helloworld-nodejs

Is there a config value that can be modified that would increase the execution of the app itself (perhaps a timeout value)?


Solution

  • UPDATED (25/6/19):

    As per https://github.com/knative/serving/pull/4196, in Knative v0.7, you can now specify MaxRevisionTimeoutSeconds which can be any integer. timeoutSeconds must be less than or equal to MaxRevisionTimeoutSeconds. timeoutSeconds defaults to 300.

    OLD: You can change timeoutSeconds (which I believe defaults to 300 seconds):

    apiVersion: serving.knative.dev/v1alpha1
    kind: Service
    metadata:
      name: my-app
      namespace: default
    spec:
      runLatest:
        configuration:
          revisionTemplate:
            spec:
              timeoutSeconds: 300
              ...