-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic-usage.php
More file actions
74 lines (59 loc) · 2.09 KB
/
basic-usage.php
File metadata and controls
74 lines (59 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
declare(strict_types=1);
/**
* Basic usage example for the Spooled PHP SDK.
*/
require_once __DIR__ . '/../vendor/autoload.php';
use Spooled\SpooledClient;
use Spooled\Config\ClientOptions;
use Spooled\Errors\SpooledError;
// Create client
$client = new SpooledClient(new ClientOptions(
apiKey: getenv('API_KEY') ?: 'your-api-key',
baseUrl: getenv('BASE_URL') ?: 'https://api.spooled.cloud',
));
try {
// Check health
$health = $client->health->check();
echo "Service health: {$health->status}\n";
// Create a job
$result = $client->jobs->create([
'queue' => 'example-queue',
'payload' => [
'message' => 'Hello from PHP SDK!',
'timestamp' => time(),
],
'priority' => 5,
'maxRetries' => 3,
]);
echo "Created job: {$result->id}\n";
// Get job status
$job = $client->jobs->get($result->id);
echo "Job status: {$job->status}\n";
echo "Queue: {$job->queueName}\n";
echo "Priority: {$job->priority}\n";
// List jobs in queue
$jobs = $client->jobs->list(['queue' => 'example-queue', 'limit' => 5]);
echo "Jobs in queue: " . count($jobs) . "\n";
// Get queue stats
$stats = $client->queues->getStats('example-queue');
echo "Queue stats - pending: {$stats->pending}, completed: {$stats->completed}\n";
// Create a job and get full details immediately
$jobWithDetails = $client->jobs->createAndGet([
'queue' => 'example-queue',
'payload' => ['test' => true],
]);
echo "Created and got job: {$jobWithDetails->id} (status: {$jobWithDetails->status})\n";
// Get job statistics
$jobStats = $client->jobs->getStats();
echo "Total jobs - pending: {$jobStats->pending}, completed: {$jobStats->completed}\n";
// Cancel the test job
$client->jobs->cancel($jobWithDetails->id);
echo "Cancelled job: {$jobWithDetails->id}\n";
} catch (SpooledError $e) {
echo "Error [{$e->statusCode}]: {$e->getMessage()}\n";
if ($e->requestId) {
echo "Request ID: {$e->requestId}\n";
}
exit(1);
}