Describe the bug
dispatch(new MyJob()) throws error with roadrunner queue driver
Expected behaviour
dispatch(new MyJob()) add MyJob to roadrunner queue
Actual behaviour
on dispatch(new MyJob()) throw error:
sync_worker_receive_frame: Network:
goridge_frame_receive: validation failed on the message sent to STDOUT, see: https://docs.roadrunner.dev/error-codes/stdout-crc, invalid message:
Symfony\Component\ErrorHandler\Error\FatalError
Class Spiral\RoadRunnerLaravel\Queue\RoadRunnerQueue contains 4 abstract methods and must therefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Queue\Queue::pendingSize, Illuminate\Contracts\Queue\Queue::delayedSize, Illuminate\Contracts\Queue\Queue::reservedSize, ...)
at vendor/roadrunner-php/laravel-bridge/src/Queue/RoadRunnerQueue.php:22
18▕ use Spiral\RoadRunner\Jobs\Queue\Driver;
19▕ use Spiral\RoadRunner\Jobs\QueueInterface;
20▕ use Spiral\RoadRunnerLaravel\Queue\Contract\HasQueueOptions;
21▕
➜ 22▕ final class RoadRunnerQueue extends Queue implements QueueContract
23▕ {
24▕ public function __construct(
25▕ private readonly Jobs $jobs,
26▕ private readonly RPCInterface $rpc,
Maybe the error occurs after this pr in laravel
System information
| Key |
Value |
| PHP version |
8.5.6 |
| Current package version |
6.4.0 |
| RoadRunner version |
2025.1.13 |
| Environment |
docker |
RoadRunner configuration file content
version: '3'
rpc:
listen: 'tcp://127.0.0.1:6001'
server:
command: 'php /var/www/html/vendor/bin/rr-worker start'
http:
address: 0.0.0.0:8080
fcgi:
address: 0.0.0.0:9000
pool:
debug: true
num_workers: 1
supervisor:
exec_ttl: 60s
jobs:
pool:
num_workers: 1
pipelines:
default:
driver: memory
config:
priority: 1
Package configuration file content
<?php
declare(strict_types=1);
use Spiral\RoadRunner\Environment\Mode;
use Spiral\RoadRunnerLaravel\Grpc\GrpcWorker;
use Spiral\RoadRunnerLaravel\Http\HttpWorker;
use Spiral\RoadRunnerLaravel\Queue\QueueWorker;
use Spiral\RoadRunnerLaravel\Temporal\TemporalWorker;
use Temporal\Worker\WorkerFactoryInterface as TemporalWorkerFactoryInterface;
return [
'cache' => [
'storage' => 'cache',
],
'grpc' => [
'services' => [
// GreeterInterface::class => new Greeter::class,
// Service with specific interceptors
// AnotherGreeterInterface::class => [
// 'service' => AnotherGreeterService::class,
// 'interceptors' => [
// AnotherGreeterServiceInterceptor::class,
// ],
// ],
],
// Global interceptors - applied to all services
'interceptors' => [
// \Spiral\RoadRunnerLaravel\Common\Interceptor\AttributesInterceptor::class,
// AllServiceInterceptor::class,
],
'clients' => [
'interceptors' => [
// LoggingInterceptor::class,
],
'services' => [
// [
// 'connection' => 'my-grpc-server:9002',
// 'interfaces' => [
// GreeterInterface::class,
// ],
// ],
// [
// 'connection' => 'my-secure-grpc-server:9002',
// 'interfaces' => [
// GreeterInterface::class,
// ],
// 'tls' => [
// 'rootCerts' => '/path/to/ca.pem',
// 'privateKey' => '/path/to/client.key',
// 'certChain' => '/path/to/client.crt',
// 'serverName' => 'my.grpc.server',
// ],
// ],
],
],
],
'temporal' => [
'address' => env('TEMPORAL_ADDRESS', '127.0.0.1:7233'),
'defaultWorker' => env('TEMPORAL_TASK_QUEUE', TemporalWorkerFactoryInterface::DEFAULT_TASK_QUEUE),
'workers' => [],
'declarations' => [
// 'App\Temporal\GreeterWorkflow'
],
],
'workers' => [
Mode::MODE_HTTP => HttpWorker::class,
Mode::MODE_JOBS => QueueWorker::class,
Mode::MODE_GRPC => GrpcWorker::class,
Mode::MODE_TEMPORAL => TemporalWorker::class,
],
];
Additional context
config/queue.php
'connections' => [
...
'roadrunner' => [
'driver' => 'roadrunner',
'queue' => env('RR_QUEUE', 'default'),
'retry_after' => (int) env('RR_QUEUE_RETRY_AFTER', 90),
'after_commit' => false,
],
],
Describe the bug
dispatch(new MyJob()) throws error with roadrunner queue driver
Expected behaviour
dispatch(new MyJob()) add MyJob to roadrunner queue
Actual behaviour
on dispatch(new MyJob()) throw error:
Maybe the error occurs after this pr in laravel
System information
RoadRunner configuration file content
Package configuration file content
Additional context
config/queue.php