Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Longrunning

Longrunning Laravel Package

google/longrunning

Idiomatic PHP client for Google Long‑Running Operations API. Install via Composer and use with REST or gRPC to manage operations (poll, cancel, delete, list) across Google Cloud services. Part of google-cloud-php; authentication/debug guides included.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Longrunning
How do I integrate google/longrunning with Laravel’s ShouldQueue jobs for async GCP operations?
Use the client’s `pollOperation()` method inside your job’s `handle()` to check operation status. Wrap it in a loop with `sleep()` or exponential backoff, and throw exceptions on failure to trigger Laravel’s retry logic. For example, poll a BigQuery export job until `getDone()` returns true, then process results or notify users via Laravel Notifications.
Which Laravel versions and PHP versions does google/longrunning support?
The package requires **PHP 8.1+** (up to 8.4) and works with any Laravel 8.x/9.x/10.x version. Ensure your `composer.json` enforces these constraints to avoid compatibility issues. Laravel’s dependency injection and queue systems integrate cleanly with the client’s REST/gRPC methods.
Can I use google/longrunning with Laravel Horizon to monitor GCP operation statuses?
Yes. Create a custom Horizon job or worker that periodically fetches operation statuses via `listOperations()` and updates a database table. Display progress in Horizon’s dashboard using Blade templates or custom metrics. For high-frequency updates, use gRPC’s streaming methods to reduce latency.
What’s the difference between REST and gRPC in this package, and when should I use each?
REST is simpler to deploy (no `ext-grpc` dependency) and works for most use cases like single operations or low concurrency. gRPC offers **lower latency and higher throughput** (ideal for >50 concurrent operations) and supports streaming. Use gRPC for batch jobs or real-time progress tracking; otherwise, REST is sufficient.
How do I authenticate google/longrunning in Laravel? Does it work with Laravel’s env() or config()?
Use Laravel’s `env()` or `config()` to load service account credentials (e.g., `GOOGLE_APPLICATION_CREDENTIALS`). The package follows Google’s PHP auth guide, so initialize the client with `new LongRunningOperationsClient(['keyFilePath' => env('GOOGLE_CREDENTIALS')])`. For workload identity, use the `accessToken` method with Laravel’s OAuth or service account impersonation.
How can I handle failed operations in Laravel, like retrying or notifying users?
Wrap client calls in `try-catch` blocks and log errors via Laravel’s `Log` facade. For retries, use Laravel’s `ShouldQueue` with `maxAttempts` or implement custom exponential backoff. Notify users via Laravel Notifications when `getDone()` returns false, including the operation’s metadata (e.g., `getError()`).
Does google/longrunning support partial success for batch operations (e.g., BigQuery exports)?
Yes. Use `listOperations()` with the `filter` parameter to check for `partial_success: true`. Validate each operation’s `getMetadata()` to handle mixed outcomes (e.g., some rows succeeded, others failed). Log partial results and trigger appropriate Laravel events or notifications for each outcome.
Are there alternatives to google/longrunning for Laravel, or should I stick with this official client?
For Google Cloud, this is the **official, production-tested client** with direct support from Google. Alternatives like rolling your own REST polling are error-prone and lack features like gRPC or unified auth. If you need multi-cloud abstraction, consider wrapping this client in a custom `CloudOperationManager` to support AWS/Azure later.
How do I optimize polling to reduce GCP API costs in Laravel?
Configure exponential backoff in your polling loop (e.g., start with 1-second delays, then 2x per retry). Use the `partial_success` flag to skip rechecking completed operations. Monitor API calls with Laravel Prometheus and set budget alerts. For high-volume jobs, use gRPC’s streaming to minimize HTTP overhead.
Can I use google/longrunning with Laravel Events or Notifications to trigger alerts when operations complete?
Absolutely. Dispatch a Laravel event (e.g., `GcpOperationCompleted`) when `getDone()` returns true, then listen for it in an `EventServiceProvider`. Use Laravel Notifications to send Slack, email, or SMS alerts with operation metadata. For real-time updates, pair this with Laravel Echo or Pusher to push status changes to clients.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
codifyo/ts-generator-bundle
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor