关于 Horizon 不同版本队列无法消费的问题
问题
从 Horizon 4x 添加的队列 3x 消费不掉。
描述
目前项目中在使用两个 Laravel 版本 7.0与6.0。他们对应的 Horizon 版本也不相同 4.3.1与3.7.2。
使用 4x 添加队列后 消费端 4x 的可以消费成功。
但是如果消费端为 3x 则只会在 Horizon 面板中显示,但不会被消费掉。
Redis存储结构
4x
{
"uuid": "e5eb996e-3bf8-4bc2-8bac-7b0b94accc83",
"displayName": "App\\Jobs\\PrimaryVideoJob",
"job": "Illuminate\\Queue\\CallQueuedHandler@call",
"maxTries": null,
"maxExceptions": null,
"delay": null,
"timeout": null,
"timeoutAt": null,
"data": {
"commandName": "App\\Jobs\\PrimaryVideoJob",
"command": "O:24:\"App\\Jobs\\PrimaryVideoJob\":9:{s:10:\"videoModel\";O:36:\"App\\Models\\V1\\Base\\ProcessVideoModel\":7:{s:2:\"id\";s:17:\"92408859603636241\";s:6:\"handle\";a:0:{}s:5:\"frame\";a:1:{s:10:\"start_time\";i:20;}s:3:\"gif\";a:2:{s:10:\"start_time\";i:-1;s:8:\"duration\";i:1;}s:4:\"clip\";a:2:{s:10:\"start_time\";i:-1;s:8:\"duration\";i:10;}s:8:\"add_clip\";a:0:{}s:7:\"sprites\";a:0:{}}s:3:\"job\";N;s:10:\"connection\";N;s:5:\"queue\";s:5:\"video\";s:15:\"chainConnection\";N;s:10:\"chainQueue\";N;s:5:\"delay\";N;s:10:\"middleware\";a:0:{}s:7:\"chained\";a:0:{}}"
},
"id": "668",
"attempts": 0,
"type": "job",
"tags": ["video:92408859603636241"],
"pushedAt": "1590027731.5307"
}
3x
{
"type": "job",
"timeout": null,
"tags": ["video:92420469445496832"],
"id": "669",
"data": {
"command": "O:24:\"App\\Jobs\\PrimaryVideoJob\":9:{s:10:\"videoModel\";O:28:\"App\\Models\\ProcessVideoModel\":8:{s:2:\"id\";s:17:\"92420469445496832\";s:4:\"file\";N;s:6:\"handle\";a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}s:5:\"frame\";a:1:{s:10:\"start_time\";i:1;}s:3:\"gif\";a:2:{s:10:\"start_time\";i:0;s:8:\"duration\";i:1;}s:4:\"clip\";a:2:{s:10:\"start_time\";i:-1;s:8:\"duration\";i:10;}s:8:\"add_clip\";a:0:{}s:7:\"sprites\";a:0:{}}s:6:\"\u0000*\u0000job\";N;s:10:\"connection\";N;s:5:\"queue\";s:5:\"video\";s:15:\"chainConnection\";N;s:10:\"chainQueue\";N;s:5:\"delay\";N;s:10:\"middleware\";a:0:{}s:7:\"chained\";a:0:{}}",
"commandName": "App\\Jobs\\PrimaryVideoJob"
},
"displayName": "App\\Jobs\\PrimaryVideoJob",
"timeoutAt": null,
"pushedAt": "1590027810.4907",
"job": "Illuminate\\Queue\\CallQueuedHandler@call",
"maxTries": null,
"delay": null,
"attempts": 1
}
补充
Horizon 配置中的 prefix 已改为相同的。
老哥们 除了给 Laravel 升级,我还有其他解决办法吗。