- How do I install dansan/jobboy-driver-redis in a Laravel project?
- First, require JobBoy and the Redis driver via Composer: `composer require dansan/jobboy dansan/jobboy-driver-redis`. Then configure JobBoy to use the Redis driver in your `config/jobboy.php` by setting the `default` driver to `redis`. Ensure Redis is running and accessible from your Laravel app.
- Does this package support Laravel’s native queue system (e.g., Queue::push())?
- No, this package is designed for JobBoy only. JobBoy mimics Laravel’s queue contracts, but you’ll need to create a custom adapter or wrapper to integrate it with Laravel’s `Queue` facade. Check the TPM assessment for an example implementation approach.
- What Laravel versions are compatible with dansan/jobboy-driver-redis?
- The package depends on JobBoy, which supports Laravel 8.x and 9.x. Verify compatibility by checking JobBoy’s [requirements](https://github.com/danielsan/jobboy) and the Redis driver’s [documentation](https://github.com/danielsan80/jobboy-doc). Test thoroughly if using Laravel 10+.
- How does job persistence work with Redis? Will failed jobs be retained?
- Redis itself doesn’t persist failed jobs—JobBoy handles retries, but you must manually configure a fallback (e.g., database) for failed jobs. The driver relies on Redis’s ephemeral nature, so plan for job loss if Redis restarts unless you implement a custom persistence layer.
- Can I use Redis Cluster with this driver?
- Yes, but you’ll need to configure your Redis client (Predis or PhpRedis) to support clustering. The driver itself doesn’t enforce cluster-specific logic, so ensure your Redis connection pool (e.g., `predis/predis`) is cluster-aware and test under load.
- What’s the performance difference between this Redis driver and Laravel’s database queue?
- Redis offers **O(1) push/pop operations**, making it significantly faster for high-throughput scenarios (e.g., 100K+ jobs/sec). Laravel’s database queue adds overhead due to SQL transactions and locking. Redis is ideal for low-latency, distributed workloads but lacks built-in job ordering guarantees.
- How do I monitor jobs processed by this Redis driver?
- The package doesn’t include built-in monitoring. Use Redis commands like `LRANGE` to inspect the queue or integrate with tools like Prometheus via a custom script. For Laravel, consider wrapping the driver in a QueueObserver or building a dashboard with Horizon’s API.
- Are there alternatives to this package for Redis-backed Laravel queues?
- Yes. For Laravel-native solutions, use `laravel/queue` with Redis (via `redis` driver). For JobBoy, alternatives include the `database` driver or sync processing. If you need Redis-specific features (e.g., pub/sub for job events), this driver is a lightweight option, but evaluate trade-offs like job persistence.
- How do I handle job serialization for complex objects (e.g., closures, resources)?
- JobBoy uses PHP’s `serialize()` by default, which may fail for closures or resources. Override the serializer in your JobBoy configuration or implement a custom serializer (e.g., JSON for simple data). Test with your specific job payloads to avoid runtime errors.
- What’s the maintenance status of this package? Should I use it in production?
- The package has low activity and no dependents, indicating limited community adoption. Validate its reliability by reviewing tests or forking the repo. For production, consider contributing fixes or implementing fallback mechanisms (e.g., database spillover) to mitigate risks.