Как сравнить jobId из API и мат-таблицы в угловом материале - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть таблица соответствия, которая показывает задания и такие подробности, как jobId, executeId, status и т. Д. Кроме того, у меня есть webSocket, который отправляет уведомление о статусе задания, т.е. работает, успешно или не выполнено.Проблема с моим WebSocket сейчас заключается в том, что он не различает задания на основе проектов или пользователей, что означает, что если пользователь 2 запускает проект, то я также получу уведомление о выполнении задания.

Я хочу поставитьусловие в моем коде таким образом, что, когда я нажимаю кнопку «стоп» рядом с моим списком заданий, код должен сравнивать мой jobId и статус и получать ответ независимо от того, было ли задание остановлено или нет из webSocket.

HTML Codeдля моей кнопки Stop Job:

 <button *ngIf="index === 0"
                    mat-icon-button
                    (click)="stop_exec_job(element)"
                    matTooltip="Stop Executing the Job"
                    [disabled]="element.status == 'Completed' || element.status == 'FINISH'"
                >
                    <!-- Edit icon for row -->
                    <i class="material-icons" style="color:red"> stop </i>
                </button>

Код функции остановки в TypeScript:

stop_exec_job(element) {
    if (element.status == 'RUNNING' || element.status == 'Pending')  {
        //Api to stop Job Execution
        this.recommendationService
            .stopJobExecution(element.jobId,element.status)
            .subscribe(data => {
                this.executeJobStop = data;
            });
        this.displaySpinner = false;

        this.snakbar.statusBar('Job Execution Stopped', 'Sucess');
    } else {
        this.snakbar.statusBar('Job Failed to start', 'Failure');
    }
}

Код WebSocket:

this.messageService.messageReceived$.subscribe(data => {
        let status: any = data;
        this.snakbar.statusBar(
            "Platform job status - " + status.message,
            "Info"
        );
});

Я хочу получить уведомление от WebSocket, соответствующеена работу, которую я остановил, используя условие if-else.Как мне этого добиться ??

1 Ответ

0 голосов
/ 02 февраля 2019

Я не знаю, понимаю ли я то, что вы хотите, и я также не знаю, что возвращает this.recommendationService.stopJobExecution (jobId, status), но, возможно, вам придется добавить в подписку действие Snackbar, например:

...
this.recommendationService
            .stopJobExecution(element.jobId,element.status)
            .subscribe(data => {
                this.executeJobStop = data;
                if(data.stopped) {
                    this.snakbar.statusBar('Job Execution Stopped', 'Success');
                }
            });
....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...