티스토리 뷰

이거 개념은 알겠는데 직접 짤려니 왜케 어렵징??? ㅜㅜ

 

그냥 큐 테이블에 던져놓고 하던일 계속 ㄱㄱ / 커널위에 스케줄러가 백그라운드로 실행.

 

이게 다인데 난 뭘 위해 삽질 했나.. 흙 ㅠㅠㅠㅠ

 

먼저 큐 테이블에 던져놓고 하던일 계속 할려면,

 

1. app\Jobs에서 테이블에 인서트 하는 로직이 필요함. NotifyImageApi라고 이름 지어줬당.

GoogleCloudVisionApiJob::insert([
                    'job_id'      => $this->job_id,
                    'image_field' => $image->field,
                    'image_hash'  => $image_hash,
                    'image_path'  => $image->path,
                    'image_size'  => $image->size,
                    'image_text'  => null,
                    'created_at'  => Carbon::now(),
                ]);

 

2. 그리고 코드에서 Jobs를 불러줘야한당.

$images = $job->images()->whereIn('field', ['aaa', 'bbb'])->get();
        if ($images->count() > 0) {

            dispatch(new NotifyImageApi($job->id));
        }

 

이러면 큐 테이블에 던져 준거당.

 

그리고 커널위에 스케줄러가 백그라운드로 실행되게 해보자.

 

3. app\Console\Commands에서 ImageApiJobs.php를 생성하고 runService 메소드에 내용을 입력하자.

 

난 전 글에서 ocr예제가 들어있당!

 

4. 커널에 등록해주자.

$schedule->command('image-api-jobs:send')
                 ->withoutOverlapping(2628000)
                 ->everyMinute()
                 ->runInBackground();

매 분마다 백그라운드에서 체크해서 돌도록 해놨당.

 

이러면 끝이당..

 

위에 1,2번은 테이블에 잘 저장되는지 확인하면 되고,

3,4 번은 실제로 데이터가 내가 기대하는대로 움직이는지 확인하면 된당!

 

그럼 끝!!!

 

 

 

분명 이해하고 넘어갔었는데; 왜 또 보는데 어렵지.......=_=

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함