2014-03-31 2 views
5

첫 번째 Laravel 앱에서 작업 중이며 Mail::queue을 사용하여 이메일을 대기열에 보내려고 할 때 이상한 문제가 발생합니다.beanstalkd 드라이버로 Laravel 4.1 메일 대기열 - "데이터를 병합하기에 불충분 함"

원래는 sync 드라이버를 사용하고 있었지만 지금은 beanstalkd 드라이버로 전환했지만 이메일 전송이 중단되었습니다. 다음과 같이

내 설정은 다음과 같습니다

  • 우분투 13.10를
  • Laravel 4.1
  • 5.5.3
  • Beanstalkd 1.8 composer.json

apt-get

  • "pda/pheanstalk": "2.1.*"를 통해 설치된 PHP 뭐야?

    [ErrorException]             
        Insufficient data for unserializing - 2570 required, 168 present 
    
    
    queue:work [--queue[="..."]] [--delay[="..."]] [--force] [--memory[="..."]] [--sleep[="..."]] [--tries[="..."]] [connection] 
    

    내가 redis 드라이버를 선택 시도하고 그 때문에 분명히 나에게 오류를 제공하지 않은 : 나는 나타났습니다 t 때마다 나는 내가 갖는

    $ php artisan queue:work 
    

    를 실행하는 것입니다 내 컴퓨터에서 pheanstalk이 어떻게 작동하는지에 문제가 있습니다.

    나는 composer.json에서 pheanstalk 버전을 변경해 보았지만 어떤 버전을 사용하던간에 여전히 같은 문제가 발생합니다.

    문제는 ...이 문제는 특히 널리 문서화, 및 오류 메시지가 정말 많이 떨어져 전혀 제공하지 않습니다하지 않는 것,

    모든 suggesions입니까?

  • 답변

    0

    Laravel은 대기열에 푸시하는 모든 항목을 직렬화하고 암호화합니다. 애플리케이션 암호화 키 (app/config/app.php 'key')가 비어 있지 않은 값으로 설정 되었습니까?

    Beanstalkd를 직접 쿼리하여 어떤 메시지가 큐에 푸시되고 있는지 확인할 수 있습니까? 이 같은 이해할 수없는 문자열을 볼 수 :

    eyJpdiI6IlZwT1p6QkhXQ3BcL0lRUmlHXC9maE8xT2o5Rk1BSUtMM0d5SlRoKzcrSGNLTT0iLCJ2YWx1ZSI6Im02N05LQzNPamNZSmVpTW5kXC80NnkyWEl0RUFMZHFiQXo0VnlNYUlLUUQzSzUrZHNIS2Vlb1kxWkpRS1VFZm5SVERXeHduWEFQelE5SCtZbVBwRmk2QkJPTlB5ek1RNWpKM3JRTzBDSlB3N3orYmk5UmZwM0ZzNmlpVVdQWVdQNWtKSWVQVG5nK29MajcyM3VtTUdraE5SNXJXYUJyYUErb25iTUJGSzhQYms9IiwibWFjIjoiNGFmNjMwNjYxYzk4NmMyZTA2ZTZlMzAwZTBlZjZhMTA1OGM2NzAxNTBkNWUzYTA2MTY3NzNiMTU4NTRlMmEyOSJ9

    그 오류는 밀고있는 문자열 중 하나를 암호화하지 않는 것을 의미한다, 또는 대기열 중간에 추진중인 작업을 중지 뭔가가있다. 그 밖의 것이 없다면 그 Exception의 텍스트 ("Unserializing을위한 데이터가 부족합니다")를 검색 할 수 있습니다. vendor/pda/pheanstalk에 PHP 파일이 만들어 져서 무슨 일이 벌어지고 있는지 이해하려고 시도 할 수 있습니다.

    0

    laravel이 뷰를 올바르게 직렬화 할 수 없기 때문에 뷰 데이터에 객체를 전달할 수 없으므로 뷰에 전달 된 데이터를 배열과 같은 간단한 데이터 구조로 변경하면됩니다.

    1

    확인이 응답 : https://stackoverflow.com/a/28226746/1427439

    같은 문제가 발생 될 수 있습니다.

    기본적으로 전달할 클로저와 함께 Eloquent 모델을 사용하지 말아야합니다. Mail::queue