mirror of https://github.com/dapr/docs.git
				
				
				
			feat: add shutdown docs
This commit is contained in:
		
							parent
							
								
									f008d6d047
								
							
						
					
					
						commit
						9d4145e542
					
				|  | @ -0,0 +1,60 @@ | |||
| --- | ||||
| type: docs | ||||
| title: "Running Dapr with a Kubernetes Job" | ||||
| linkTitle: "Kubernetes Jobs" | ||||
| weight: 1000 | ||||
| description: "Use Dapr API in a Kubernetes Job context" | ||||
| type: docs | ||||
| --- | ||||
| 
 | ||||
| # Kubernetes Job | ||||
| 
 | ||||
| The Dapr sidecar is designed to be a long running process, in the context of a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) this behaviour can block your job completion. | ||||
| To address this issue the Dapr sidecar has an endpoint to `Shutdown` the sidecar. | ||||
| 
 | ||||
| When running a basic [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) you will need to call the `/shutdown` endpoint for the sidecar to gracefully stop and the job will be considered `Completed`. | ||||
| 
 | ||||
| When a job is finish without calling `Shutdown` your job will be in a `NotReady` state with only the `daprd` container running endlessly. | ||||
| 
 | ||||
| ```yaml | ||||
| apiVersion: batch/v1 | ||||
| kind: Job | ||||
| metadata: | ||||
|   name: job-with-shutdown | ||||
| spec: | ||||
|   template: | ||||
|     metadata: | ||||
|       annotations: | ||||
|         dapr.io/enabled: "true" | ||||
|         dapr.io/app-id: "with-shutdown" | ||||
|     spec: | ||||
|       containers: | ||||
|       - name: job | ||||
|         image: busybox | ||||
|         command: ["/bin/sh", "-c", "sleep 20 && wget localhost:3500/v1.0/shutdown"] | ||||
|       restartPolicy: Never | ||||
| ``` | ||||
| 
 | ||||
| You can also call the `Shutdown` from any of the Dapr SDK | ||||
| 
 | ||||
| ```go | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"log" | ||||
| 	"os" | ||||
| 
 | ||||
| 	dapr "github.com/dapr/go-sdk/client" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
|   client, err := dapr.NewClient() | ||||
|   if err != nil { | ||||
|     log.Panic(err) | ||||
|   } | ||||
|   defer client.Close() | ||||
|   defer client.Shutdown() | ||||
|   // Job | ||||
| } | ||||
| ``` | ||||
		Loading…
	
		Reference in New Issue