THẢO LUẬN

Expect của em thì log ra được dòng console.log('event', event); console.log(USER_CREATED_EVENT); ở terminal worker, nhưng mà hiện tại thì đang ko được anh ạ Kb cách giải thích của em có dễ hiểu ko ạ.

0

@ntngoc96wd dạ vâng, đối vói câu hỏi thứ 1 thì em đã giải quyết được, ái chà, giống vói cách của anh suggest về câu hỏi thứ 2. trong nodejs có 1 lib built-in có tên là events, ví dụ app của em có 2 entry-points chạy ở 2 process riêng biệt, api.ts và worker.ts Khi em chạy thì đồng thời cả 2 entry-points sẽ được khởi tạo eventEmitter riêng biệt (internal trong process) Chỉ là em muốn triển khai trong job cũng có thể emit được event, và event được lắng nghe ở chính process đó HIện tại thì em đang dùng sandbox.processor

export default async function (job: SandboxedJob) {
    const logger = new Logger('User Processor');
    logger.log('User Processor');
    switch (job.name) {
        case 'test':
            console.log('Before event emission');
            eventEmitter.emit(USER_CREATED_EVENT, { name: 'test' });
            console.log('After event emission');
        default:
            throw new Error('No job name match');
    }

    async function handlerSomething() {}
}

Ở worker.module.ts em có đăng ký user.listener.ts


@Module({
    imports: [
        BullModule.registerQueue({
            name: USER_PROCESSOR,
            processors: [
                {
                    concurrency: 1,
                    path: join(__dirname, '../user/user.sandbox.processor.js'),
                },
            ],
            prefix: 'ins-chat',
            connection: {
                host: 'localhost',
                port: 6379,
            },
        }),
        EventEmitterModule.forRoot(),
    ],

    providers: [UserEvent],
})
export class WorkerModule {}

Ở user.listener.ts:

export const USER_CREATED_EVENT = 'user-created';

@Injectable()
export class UserEvent {
    @OnEvent(USER_CREATED_EVENT)
    handleOrderCreatedEvent(event: IUserCreatedEvent) {
        console.log('event', event);
        console.log(USER_CREATED_EVENT);
    }
}
0
thg 1 14, 2024 8:55 SA

Sao mình bỏ notify trong hàm putMessage nhưng hàm getMessage vẫn chạy nhỉ

0
thg 1 14, 2024 6:24 SA

Em chào anh, em có làm hết các bước đến phần "Thay đổi code bên ngoài F5 trình duyệt không thấy thay đổi????" , giờ em chạy lên thì sửa trong Vue.app nhưng không hiện thay đổi trong trình duyệt, anh xem giúp e ạ image.png image.png image.png image.png image.png Em có thử mount như anh làm và mount cả ./:app/ nhưng nó đều không hiện.

0
thg 1 14, 2024 2:40 SA

@Datnd lỗi rõ thế còn gì e 😃)

tên của e phải là lowercase, e đang để chữ viết hoa kìa DatNguyen

0
thg 1 13, 2024 9:52 CH

delay sau 10p cha ơi, addMinutes mà giây :v

0
thg 1 13, 2024 4:30 CH

@maitrungduc1410 image.png không hiểu sao nó cứ báo lỗi này trong khi project của em đặt như anh bảo..... anh chỉ em với

0

Cảm ơn bạn🥰

0

+1 respect

+1

Mình nghĩ là bạn nên viết bài kỹ hơn một xíu, mô tả rõ ràng hơn. +1 respect cho bạn.

0

Tks em đã đọc bài viết 😁.

  • Câu thứ 1: Để chỉ chạy ở worker thì ở bỏ phần khai báo processor trong provider đối với sử dụng thông thường. Còn đối với dùng sandbox processor thì e loại nó khỏi processor params khi register, ví dụ đoạn code của e:
processors: [
                // {
               //  concurrency: 1,
              //      path: join(__dirname, '../user/user.sandbox.processor.js'),
             // },
            ]
  • Câu thứ 2: câu này anh chưa rõ lắm, dự định của em là làm gì với Event Emitter và nó có liên quan gì tới job hông.

Có gì không hiểu có thể comment anh sẽ cố gắng giải đáp 😄

0
thg 1 13, 2024 2:49 CH

@maitrungduc1410 em cảm ơn anh ạ😁

0
thg 1 13, 2024 7:34 SA

à cái đó là do lúc trước mình cần tự cài docker-compose, giờ compose nó có sẵn trong docker luôn rồi

e clone lại code giúp a nhé: https://gitlab.com/maitrungduc1410/learning-docker

ở commit mới nhất a đã sửa lỗi này rồi

0
thg 1 13, 2024 2:35 SA

@datnx docker-compose ps xem tất cả các service có Up ko?

0
thg 1 13, 2024 2:35 SA

@datnx server error kìa e, e check logs xem nó báo j ?

0
thg 1 12, 2024 6:17 CH

anh ơi stage build em bị lỗi cái thư viện bcrypt nó không dùng đc ở pyhton ver này hay sao ý giờ fix sao ạ Screenshot 2024-01-13 011504.png

0
Avatar
đã bình luận câu trả lời trong câu hỏi
thg 1 12, 2024 1:20 CH

@dovannam115 bạn còn giữ code không ạ? bạn có thể cho mình xin được không. Mình cảm ơn cậu

0
thg 1 12, 2024 11:03 SA

@maitrungduc1410 Dạ e có xóa folder .docker ở test-deploy rồi nhưng vẫn không login được ạ, web thì vẫn lưu user với pass để autofill nhưng e ấn login thì không dc. Register 1 tk mơi thì nó báo server error ạimage.pngimage.png

0
thg 1 12, 2024 9:43 SA

Xài lua scripts block thread redis, mình nghĩ nên thêm case test bằng multiple instances nữa

+1
thg 1 12, 2024 8:49 SA

@dangduytung cám ơn a 🙏

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí