My App/Model has a timeout which makes it hard to complete tasks
My App or Model can only process a request for 60/75/300 seconds?
I see 504 Gateway Timeout in my App?
Various timeouts exist in Domino. Some can be changed, some are fixed. Alternatives to the manual intervention would include using (nonscheduled) Runs and the API to start off a process - which will not carry any timeout but requires some development, launcher to upload files and kick off processing or Model API and upload files from App to Model - larger setup but may have additional benefits.
If you see a 300 second timeout, perhaps in App processing this is baked into the configmap but in Domino 4.6 a system-wide value for timeout can be set via Central Config which will override the 300 second default.
You can find the runId of your App and edit the configmap. Please take care, since bad configmaps can cause your application to fail and editing the wrong configmap can have dire consequences!
Once you have the runId, you can find the objects:
kubectl get cm -A | grep run-<runId>
kubectl get pods -A | grep run-<runId>
Edit the configmap:
kubectl edit cm -n <compute namespace> run-<runId>
This is usually vim, search for '300' using the / key. You'll find the timeout values. There are two values (in two locations, 4 in total). There are two values, read and connect timeout:
\ location / {\n proxy_pass http://run;\n proxy_read_timeout 300;\n proxy_connect_timeout
300;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n
These are duplicated later in the code as well. Avoid the 'counter' parameter which is also set at 300.
Once saved, you'll need to restart the run container with:
kubectl delete pod -n <compute namespace> run-<runId>-<unique identifier>
This is a temporary change and will be reset if you stop your App!
Comments
0 comments
Please sign in to leave a comment.