Laravel, как получить данные с работы? - PullRequest
0 голосов
/ 25 марта 2019

Я получил очередь Laravel (с Redis).Мне нужно получить работу из этой очереди.Я пытаюсь сделать:

$queues = Queue::getRedis()->zrange('queues:confluence:delayed' ,0, -1);
foreach ($queues as $job) {
    $tmpdata = json_decode($job);
    $command = $tmpdata->data->command;
}

Но в $command я получил эту строку:

"O: 16: \" App \ Jobs \ TestJob \ ":8: {s: 7: \ "\ u0000 * \ u0000name \"; s: 5: \ "12345 \"; s: 6: \ "\ u0000 * \ u0000job \"; N; s: 10: \ "соединение\ "N; s: 5: \" очередь \ "; s: 10: \" стечение \ "; s: 15: \" chainConnection \ "N; s: 10: \" chainQueue \ ", N; s: 5: \ "delay \"; i: 5; s: 7: \ "chained \"; a: 0: {}} "


> It does not seems like json or anything else (what I can parse to
> normal object/array). How can I get job data in this way?

1 Ответ

0 голосов
/ 25 марта 2019

Данные, которые вы видите, сериализуются. Вы можете десериализовать его так:

 $command = unserialize($tmpdata->data->command);

Хотя позаботьтесь и прочитайте документацию по этой команде, так как она представляет потенциальную угрозу безопасности: https://www.php.net/manual/en/function.unserialize.php

...