mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-17 22:24:21 +01:00
Mnovich/temporal scheduler (#2745)
This commit is contained in:
117
temporal-service/example.sh
Executable file
117
temporal-service/example.sh
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Example usage script for the Temporal service
|
||||
set -e
|
||||
|
||||
echo "Temporal Service Example Usage"
|
||||
echo "=============================="
|
||||
echo ""
|
||||
|
||||
# Check if service is running
|
||||
if ! curl -s http://localhost:8080/health > /dev/null; then
|
||||
echo "Starting Temporal service..."
|
||||
echo "Please run in another terminal: ./temporal-service"
|
||||
echo "Then run this script again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✓ Temporal service is running"
|
||||
echo ""
|
||||
|
||||
# Create example recipe
|
||||
RECIPE_FILE="/tmp/example-recipe.yaml"
|
||||
cat > $RECIPE_FILE << EOF
|
||||
version: "1.0.0"
|
||||
title: "Daily Report Generator"
|
||||
description: "Generates a daily report"
|
||||
prompt: |
|
||||
Generate a daily report with the following information:
|
||||
- Current date and time
|
||||
- System status
|
||||
- Recent activity summary
|
||||
|
||||
Please format the output as a structured report.
|
||||
EOF
|
||||
|
||||
echo "Created example recipe: $RECIPE_FILE"
|
||||
echo ""
|
||||
|
||||
# Function to make API calls
|
||||
make_api_call() {
|
||||
local action="$1"
|
||||
local job_id="$2"
|
||||
local cron="$3"
|
||||
local recipe_path="$4"
|
||||
|
||||
local payload="{\"action\": \"$action\""
|
||||
|
||||
if [ -n "$job_id" ]; then
|
||||
payload="$payload, \"job_id\": \"$job_id\""
|
||||
fi
|
||||
|
||||
if [ -n "$cron" ]; then
|
||||
payload="$payload, \"cron\": \"$cron\""
|
||||
fi
|
||||
|
||||
if [ -n "$recipe_path" ]; then
|
||||
payload="$payload, \"recipe_path\": \"$recipe_path\""
|
||||
fi
|
||||
|
||||
payload="$payload}"
|
||||
|
||||
echo "API Call: $payload"
|
||||
curl -s -X POST http://localhost:8080/jobs \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "$payload" | jq .
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Example 1: Create a daily job
|
||||
echo "1. Creating a daily job (runs at 9 AM every day)..."
|
||||
make_api_call "create" "daily-report" "0 9 * * *" "$RECIPE_FILE"
|
||||
|
||||
# Example 2: Create an hourly job
|
||||
echo "2. Creating an hourly job..."
|
||||
make_api_call "create" "hourly-check" "0 * * * *" "$RECIPE_FILE"
|
||||
|
||||
# Example 3: List all jobs
|
||||
echo "3. Listing all scheduled jobs..."
|
||||
make_api_call "list"
|
||||
|
||||
# Example 4: Pause a job
|
||||
echo "4. Pausing the hourly job..."
|
||||
make_api_call "pause" "hourly-check"
|
||||
|
||||
# Example 5: List jobs again to see paused status
|
||||
echo "5. Listing jobs to see paused status..."
|
||||
make_api_call "list"
|
||||
|
||||
# Example 6: Unpause the job
|
||||
echo "6. Unpausing the hourly job..."
|
||||
make_api_call "unpause" "hourly-check"
|
||||
|
||||
# Example 7: Run a job immediately
|
||||
echo "7. Running daily-report job immediately..."
|
||||
echo "Note: This will fail without goose-scheduler-executor binary"
|
||||
make_api_call "run_now" "daily-report"
|
||||
|
||||
# Example 8: Delete jobs
|
||||
echo "8. Cleaning up - deleting jobs..."
|
||||
make_api_call "delete" "daily-report"
|
||||
make_api_call "delete" "hourly-check"
|
||||
|
||||
# Example 9: Final list (should be empty)
|
||||
echo "9. Final job list (should be empty)..."
|
||||
make_api_call "list"
|
||||
|
||||
# Clean up
|
||||
rm -f $RECIPE_FILE
|
||||
|
||||
echo "Example completed!"
|
||||
echo ""
|
||||
echo "Common cron expressions:"
|
||||
echo " '0 9 * * *' - Daily at 9 AM"
|
||||
echo " '0 */6 * * *' - Every 6 hours"
|
||||
echo " '*/15 * * * *' - Every 15 minutes"
|
||||
echo " '0 0 * * 0' - Weekly on Sunday at midnight"
|
||||
echo " '0 0 1 * *' - Monthly on the 1st at midnight"
|
||||
Reference in New Issue
Block a user