업무에서 큐를 이용해야 할 것 같아서 실제로 안써본 라라벨 큐를 써보려고 한다.
라라벨은 큐라는 것을 쉽게 이용할 수 있다.
왜 쓰냐면 무거운 작업들을 백그라운드에서 작업시켜 버릴 수가 있기 때문이다. 엄청 무건운 건 아니지만 메일 전송같은 것들이 그러하다 .
당연히 큐라는 이름 특성상 중간의 한 번 거쳐가는 대기열로 써도 된다.
php artisan queue:work
드라이버 - db(jobs테이블), redis , beanstalkd, aws sqs를 기본으로 지원한다.
본인은 간단하게 db(mysql)로 작업했다. mac으로는 mysql을 첨 설치했는데, 간단했다.
mysql8부터는 php7.4를 쓰는 것이 비밀번호 암호화설정 에러가 나지 않는다. (물론 본인은 7.2를 써가지고 에러가 나서 조금 시간이 걸렸다. )
구조는 job을 dispatch하면 그 job이 해당 큐드라이버로 이동하게 되고, 이러한 잡들은 큐드라이버에서 소모된다. 이 큐를 실제로 소모하려면 php artisan queue:work를 실행하면 된다. (당연히 별도의 php프로세스가 실행된다. )
따라서 이 명령어를 2번 치면 대기열의 처리량이 2배가 된다. 하지만 서버의 메모리를 잘 고려해서 진행해야 한다.
참고
1. 라라벨 공식doc
2. https://www.youtube.com/watch?v=m-hNL87-lFo&list=PLcjapmjyX17hJZ-shzRMxTus0aMw0EVVB&index=9&t=25s
'프로그래밍 언어(must-have skills) > PHP' 카테고리의 다른 글
generator와 lazyCollection (2) | 2023.10.21 |
---|---|
php 벤치마크 사이트 추천 -The PHP Benchmark (0) | 2023.06.01 |
__call method (0) | 2023.04.29 |
[라라벨] laravel-debugbar (0) | 2023.03.07 |
[문법]PHP foreach 사용법 (0) | 2023.02.11 |